怎么在ajax中利用formdata流上传文件-创新互联

今天就跟大家聊聊有关怎么在ajax中利用formdata流上传文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联建站是一家专业提供建华企业网站建设,专注与成都网站制作、成都网站建设、H5响应式网站、小程序制作等业务。10年已为建华众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
//html如下
//form1

 
 
 
 
     
 
       
        //form2      
$("#btn-register-confirm").click(function () {
 //upRegister()是表单验证,这就没有给出了
 if (upRegister()){
 var form=$("#registerForm2")[0];//第二个表单的id,注意[0]不能漏掉
 var fd=new FormData(form);
 //由于后台接收的数据只能是序列化之后的样子,所以将第一个表单的字段存放在cookie中。通过fd.append()以键值对形式存放
 fd.append("shopName",$.cookie("shopName"));
 fd.append("name",$.cookie("name"));
 

 $.ajax({
 type:'post',
 async: false,
 url:"url",
 data:fd,
 processData:false,//因为data值是FormData对象,不需要对数据做处理。
 contentType:false,//因为是由
表单构造的FormData对象,所以这里设置为false。  success:function(data){  if (data.resultCode=="0"){   webToast("成功注册!");   console.log("成功注册");  }  },  error:function(){  console.log("注册失败");  }  })  } });

以上就实现了ajax上传文件流及一般参数。这主要涉及到2方面:

  1. 不同页面的不同表单要放在同一个按钮触发同一个ajax传输到服务器,使用cookie先存储一个表单数据,这可能会麻烦些并且不安全,但目前我也只想到了这种方式,如果有更好的欢迎补充;


  2. ajax上传文件流,要注意var fd=new FormData($("#表单id")[0]);[0]千万要带上,我就是因为这个弄了一整天才好。processData:false, contentType:false,还有ajax的这两个参数要写为false,具体原因上面已经写了。

看完上述内容,你们对怎么在ajax中利用formdata流上传文件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


网页标题:怎么在ajax中利用formdata流上传文件-创新互联
网页网址:http://azwzsj.com/article/dogssp.html