利用formData上传图片

在某种特殊情况下我们上传图片不能用form表单,那么只能用ajax对单个图片进行上传或修改,利用formdata就能很好的实现,下面上代码,js中的只是关于formdata如何获取图片资源的一部分代码,剩余的ajax上传就按正常写法来写就可以

js:

	 var formdata = new FormData();
     formdata.append('img', $("#imgFile"+o)[0].files[0]);
     formdata.append('option_id', $("#option_id"+o).val());

php获取

 public function editUserImg(){
        $param=$this->request->param();
        $file = request()->file('img');
        $info = $file->move(ROOT_PATH . 'public'. DS . 'uploads');
        if($info){
            $where['img']=$info->getSaveName();
            //压缩图片
            $image= \think\Image::open($info);
            $image->thumb(150,150)->save('uploads/'.$where['img']);
            if($param['option_id'] != 'undefined'){
                $val=db('vote_option')->where('id',$param['option_id'])->update($where);
                $url=db('vote_option')->where('id',$param['option_id'])->find();
            }else{
                $val=db('vote_option')->insertGetId($where);
                $url=db('vote_option')->where('id='.$val)->find();
            }

            return json_encode($url);
        }else{
            return $file->getError();
        }
    }

补充:ajax利用formdata上传图片还需要注意两个点, contentType与processData必须为false

$.ajax({
                url:"",
                type:'post',
                data:formdata,
                contentType:false,
                processData:false,
                success:function (res){
					console.log(res);
				}
            })
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值