确保传到后台的是纯base64字符串而不是以data开头的
//base64图片上传 public function uploadCompressImg(Request $request) { $base64 = preg_replace("/\s/",'+',$request->input('img')); $img = base64_decode($base64); $disk = \Storage::disk('qiniu'); //使用七牛云上传 $img_name = date('Y/m/d-H:i:s-') . uniqid() . '.png'; $filename = $disk->put($img_name,$img);//上传 if(!$filename) { return $this->apiResponse(500, '上传失败'); } $img_url = $disk->getDriver()->downloadUrl($img_name); //获取下载链接 return $this->apiResponse(200, '上传成功',$img_url); }
-----------------------------------------------------------实际项目中------------------------------------------------------------------------
//获取图片 $file=$request->input('Upload_img'); $img = base64_decode(str_replace('data:image/jpeg;base64,', '', $file)); $auth = new Auth(self::Ak,self::SK); //生成上传图片的token //$extension = strtolower($file->getClientOriginalExtension()) ?: 'png'; $token = $auth->uploadToken(self::BUCKEY); $key = time().rand(0,9999).'.png'; $uploadMgr = new UploadManager(); list($ret,$err) = $uploadMgr->put($token,$key,$img); if($ret){ //这里返回的是一个bucket的域名,在前面添加http://后就可以正常看到图片 $img_src = self::DOMAIN.'/'.$key; return response()->json(['status'=>'200','msg'=>'图片上传发送,成功','Upload_img'=>$img_src]); }else{ return response()->json(['status'=>'400','msg'=>'图片上传失败,请重新提交!']); }