简单学会 ajax上传图片详细讲解(更换用户头像)

1:点击头像,调用标签<input type="file" name="file"  id="user"/>


2:平时我们正常ajax请求数据如下图

      假设我们的接口请求地址是    http:XXXXXXXXX?action=update_avatar&token=123

      data里面是我们要拼接到接口请求地址的参数。左边是参数右边是对应的值



3:而图片上传,你传的是一个file文件 而不再是普通的string类型,我们需要用到H5的FormData方法,同时在ajax中加上

     contentType : false,    //不设置Content-Type请求头

    processData : false,    // 不处理发送的数据

     假设上传头像的接口请求地址是

     http:XXXXXXXXX?action=update_avatar&token=123&__source="要上传的图片资源"

把图片资源跟参数__source存到formData中,其他参数直接拼接到地址进行请求

 或者把所有参数像__source一样,都存到formData中,这样就不用在地址后面拼接了,两种方法都是可以成功上传图片的


            	var toKen = "123";
            	
            	//点击input标签
	            $("#user").change(function() {
	            	
	            	var files = $("#user").get(0).files[0]; //获取file控件中的内容
	            	
	            	var reader = new FileReader();
	            	reader.readAsDataURL(files);
		            reader.onload = function(f) {
		                var result = document.getElementById("result");
		                //预览图片  
		                document.getElementById("tx_img").src = this.result;
		            }
		            
	            	var formData = new FormData();
	           		formData.append("__source", files);
	           		
		            $.ajax({
		                type:"POST",
		                url:"XXXXXXXXX?action=update_avatar&token="+toKen,//接口请求地址
		                contentType:false,
		                processData: false,
		                data:formData,
		                success:function(data){
		                	var data = JSON.parse(data);
					console.log("请求成功之后,调用接口返回的数据");
		                }
		            });
	           		
	             });

     
  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caicaicai404

对作者使用钞能力,欢迎点这里

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值