之前的移動端上傳的方法,有些朋友測試說微信支持不是很好,還有部分安卓機也不支持,其實我已經(jīng)有了另一個方法,但是例子還沒整理出來,而聯(lián)系我的很多朋友需要,所以就提前先發(fā)出來了,并且做一個簡單的說明,就不做一個demo了。
創(chuàng)新互聯(lián)建站長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為藁城企業(yè)提供專業(yè)的網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計,藁城網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
圖片壓縮
這個也是把圖片轉(zhuǎn)成了base64去傳送,個人不建議去用js改變圖片的大小,建議裁切縮放還是PHP來做吧。
this.maxWidth = options.maxWidth || 800; this.maxHeight = options.maxHeight || 600; this.maxSize = options.maxSize || 3 * 1024 * 1024; this.input = options.input; this.mime = {'png': 'image/png', 'jpg': 'image/jpeg', 'jpeg': 'image/jpeg', 'bmp': 'image/bmp'};
這一部分是對上傳圖片的配置,應(yīng)該可以看懂,可以自己去改
$.ajax({ url:"{:U('upload')}", data:{str:base64,type:this.fileType}, type:'post', dataType:'json', success:function(i){ alert(i.info); }
這部分是上傳以后ajax發(fā)送base64碼到php,
base64碼帶有圖片的說明字符串,所以得用正則去掉,然后base64解碼保存到圖片的文件中。并且返回地址即可
upload.php的內(nèi)容
$str = $_POST['str']; $type = $_POST['type']; switch($type){ case 'image/png': $ext='.png'; break; case 'image/jpeg'; $ext='.jpeg'; break; case 'image/jpeg': $ext='.jpg'; break; case 'image/bmp': $ext='.bmp'; break; default: $ext='.jpg'; } $file_path='./Uploads/'.date('Ymd').'/'.time().$ext; if(!file_exists(dirname($file_path))){ mkdir(dirname($file_path),0777,true); } $img_content = str_replace('data:'.$type.';base64,','',$str); $img_content = base64_decode($img_content); $result =file_put_contents($file_path,$img_content);
個人博客已轉(zhuǎn)移到尛雷個人博客