前後端分離 前臺傳base64的圖片 tp5.1.1進行處理
阿新 • • 發佈:2020-07-28
話不多說,直接上程式碼
public function image(Request $request){ $param = $request->param(); //目錄的upload資料夾下 $up_dir = "uploads/".date('Ymd', time()) . "/"; //建立目錄 if(!file_exists($up_dir)){ mkdir($up_dir,0777,true); } $base64_img = trim($param['image']); if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)){ $type = $result[2]; if(in_array($type,array('pjpeg','jpeg','jpg','gif','bmp','png'))){ $new_file = $up_dir.time().'.'.$type; if(file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_img)))){ $img_path = str_replace('../../..', '', $new_file); return json(array('code'=>0,'data'=>$img_path,'msg'=>'成功')); }else{ return json(array('code'=>1,'data'=>'','msg'=>'圖片上傳失敗')); } }else{ //檔案型別錯誤 return json(array('code'=>1,'data'=>'','msg'=>'圖片上傳型別錯誤')); } } }
轉載 :https://blog.csdn.net/zhangweiguangsunjiao/article/details/100861750
------------------------------------------------------------自己專案-----------------------------------------------------------------------
public function upload_free_img() { //todo 前後端分離,前臺傳圖片的base64,後臺獲取base64流把圖片儲存在伺服器中 $img = $_POST['imgbase64']; //目錄的upload資料夾下 $up_dir = "uploads/base64/upload_free_img".date('Ymd', time()) . "/"; //建立目錄 if(!file_exists($up_dir)){ mkdir($up_dir,0777,true); } $base64_img = $img; if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)){ $type = $result[2]; if(in_array($type,array('pjpeg','jpeg','jpg','gif','bmp','png'))){ $new_file = $up_dir.time().'.'.$type; if(file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_img)))){ $img_path = str_replace('../../..', '', $new_file); return json(array('status'=>200,'data'=>$img_path,'msg'=>'成功')); }else{ return json(array('status'=>400,'data'=>'','msg'=>'圖片上傳失敗')); } }else{ //檔案型別錯誤 return json(array('status'=>400,'data'=>'','msg'=>'圖片上傳型別錯誤')); } } }