怎么在ajax中利用formdata流上传文件

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

成都创新互联公司服务项目包括龙凤网站建设、龙凤网站制作、龙凤网页制作以及龙凤网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,龙凤网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到龙凤省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

//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://scjbc.cn/article/ghdsch.html