为了账号安全,请及时绑定邮箱和手机立即绑定

file_put_contents()上传图片的问题

file_put_contents()上传图片的问题

PHP
一只斗牛犬 2019-03-10 22:16:19
问题描述 前端用ajax把base64格式的图片传过来,能成功保存,但是不知为何会多生成一个图片。 相关代码 uploadImg () { this.$http.post(this.$store.state.apiUrl + 'uploadImg', [ this.image ]).then(function (response) { console.log(JSON.stringify(response.body)); }, function (response) { console.log(JSON.stringify(response.body)); }); } // php部分 define('UPLOAD_DIR', './uploads/'); $img = $this->request->post(0); $start=strpos($img,','); $img= substr($img,$start+1); $img = str_replace(' ', '+', $img); $data = base64_decode($img); $fileName = UPLOAD_DIR . uniqid() . '.jpg'; $success = file_put_contents($fileName, $data); $data=array(); if($success){ $data['status']=1; $data['msg']= $img; echo json_encode($data); }else{ $data['status']=0; $data['msg']='系统繁忙,请售后再试'; echo json_encode($data); } 你期待的结果是什么?实际看到的错误信息又是什么? 多生成了右边这个空白的图片
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

从图片名字看,应该是前端发起了多次请求造成

可以检查浏览器调试器里的network是否发起多次请求

查看完整回答
反对 回复 2019-03-18
?
慕后森

TA贡献1802条经验 获得超5个赞

同意楼上说法, 你生成的两个文件名已经是不一样的了,肯定是多次请求造成的了

查看完整回答
反对 回复 2019-03-18
?
皈依舞

TA贡献1851条经验 获得超3个赞

同意楼上的,限制前端一次刷新提交即可,或者你在后台进行限制

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 695 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信