前景:前端发送base64格式的图片给到后端。后端如果用自带的框架上传图片是行不通的,所以博主采用下面的方法进行对base64文件上传处理
PHP版base64位上传函数:
public function base64($file){ //接收base64数据 $image= $file; //设置图片名称 $imageName = "25220_".date("His",time())."_".rand(1111,9999).'.png'; //判断是否有逗号 如果有就截取后半部分 if (strstr($image,",")){ $image = explode(',',$image); $image = $image[1]; } //设置图片保存路径 $path = "./uploads/guochaosign/".date("Ymd",time()); //判断目录是否存在 不存在就创建 if (!is_dir($path)){ mkdir($path,0777,true); } //图片路径 $imageSrc= $path."/". $imageName; //生成文件夹和图片 $r = file_put_contents($imageSrc, base64_decode($image)); if (!$r) { return '图片生成失败'; }else { return str_replace("./","/",$imageSrc); } }
使用调用方法:
// 图片上传 public function uploadImg(){ //判断是否是POST请求,如果是处理上传逻辑 if (request()->isPost()){ //接收文件上传类型 $namePath = 123; //获取表单上传文件 $file = request()->param('img'); $src = $this->base64($file); if ($src){ return json(['code'=>1,'msg'=>'上传成功','data'=>['src'=>$src]]); }else{ return json(['code'=>0,'msg'=>'上传失败']); } }else{ return json(['code'=>0,'msg'=>'非法请求']); } }
文章评论(0)