base64图片上传,推到又拍云
Posted 小虎哥哥、BLOG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了base64图片上传,推到又拍云相关的知识,希望对你有一定的参考价值。
html部分
<label> <img id="nvhai" src="{$agent.id|get_headimg}" height="70px" width="70"> <input style="display:none" id="tou" type="file" onchange="previewFile()"> </label>
Js部分
//单文件上传 function previewFile(){ var file=document.getElementById(‘tou‘).files[0]; var reader=new FileReader(); reader.addEventListener(‘load‘,function(){ $.ajax({ type:‘post‘, url:‘http://api.xxx.cn/api/up‘, datatype:‘josn‘, data:{img:reader.result}, success:function(response){ document.getElementById(‘nvhai‘).setAttribute(‘src‘,‘http://img.xxx.cn/‘+response); } }); document.getElementById(‘nvhai‘).setAttribute(‘src‘,reader.result); },false); reader.readAsDataURL(file); }
function MorepreviewFile(){ var file=document.getElementById(‘moretou‘).files; if(file.length>8){ $(‘.mo‘).html(‘选择的图片不能超过8张,请重新选择‘); $(‘.mo‘).fadeIn(‘fast‘); setTimeout(function(){ $(‘.mo‘).fadeOut(‘fast‘); },1500) }else{ for(var i=0;i<file.length;i++){ var reader=new FileReader(); reader.readAsDataURL(file[i]); reader.onload=function(e){ $(‘.jia‘).before("<li class=‘img-box‘><img src=‘"+this.result+"‘ width=‘100%‘ height=‘80px‘></li>"); } } } }
php部分
/** * 上传图片并且又拍云 2017/3/3 * @param:img resource图片的base64代码,包含头文件 * @Return: array 是否上传成功呢 * @Author: xiaohu [email protected] */ public function up() { $pic = I(‘img‘); //解码上传 $pic_url = pic_decode_base64($pic,‘./upload/‘); //推到又拍云 $qrcode = substr($pic_url, 1); $upun = upimg($qrcode); $this->ajaxreturn($upun); }
函数库
//=============================================图片上传中心=base64/又拍云================================================ /**TODO 上传图片base64 * 上传的base64图片进行转换并上传 * @param resource 图片的base64代码,包含头文件 * @param string 上传的路径 * @return 图片地址 * @author 小虎 [email protected] */ function pic_decode_base64($file,$path=‘./upload/‘) { // 获取图片 list($type, $data) = explode(‘,‘, $file); // 判断图片类型 if(strstr($type,‘image/jpeg‘)!=‘‘){ $ext = ‘.jpg‘; }elseif(strstr($type,‘image/gif‘)!=‘‘){ $ext = ‘.gif‘; }elseif(strstr($type,‘image/png‘)!=‘‘){ $ext = ‘.png‘; } // 生成的文件名 $photo = $path.uniqid().$ext; // 生成文件 $Temp = base64_decode($data); $temp = gzinflate($Temp); file_put_contents($photo, $Temp, true); return $photo; } /**TODO 上传图片到又拍云 * 上传图片到又拍云 * @param string $img * @return string */ function upimg($img) { set_time_limit(0); ini_set(‘memory_limit‘, ‘512M‘); $process = curl_init(‘http://v0.api.upyun.com/XXX/upload/‘ .date(‘Ymd‘). $img); // 上传操作 curl_setopt($process, CURLOPT_PUT, 1); curl_setopt($process, CURLOPT_USERPWD, "XXX"); curl_setopt($process, CURLOPT_HEADER, 0); curl_setopt($process, CURLOPT_TIMEOUT, 60); // 本地待上传的图片文件 $local_file_path = ‘.‘ . $img; $datas = fopen($local_file_path, ‘r‘); fseek($datas, 0, SEEK_END); $file_length = ftell($datas); fseek($datas, 0); // 设置待上传图片的内容 curl_setopt($process, CURLOPT_INFILE, $datas); // 设置待上传图片的长度 curl_setopt($process, CURLOPT_INFILESIZE, $file_length); curl_setopt($process, CURLOPT_HTTPHEADER, array( //‘x-gmkerl-type: fix_width‘, // ‘x-gmkerl-value: 200‘, ‘x-gmkerl-unsharp: true‘, ‘Mkdir:true‘, )); curl_exec($process); // $info=curl_getinfo($process); curl_close($process); fclose($datas); //删除图片 @unlink (‘./‘.$img); return $img = ‘/upload/‘ .date(‘Ymd‘).$img; } //=============================================END=====================================================================
以上是关于base64图片上传,推到又拍云的主要内容,如果未能解决你的问题,请参考以下文章