文件上传到服务器再解析

1 篇文章 0 订阅

分享一下文件上传到服务器再解析的经验:
以前做页面,也用到了文件上传,但都是用jquery 插件去做,没有自己亲手用jquery ajax 做过,所以对其中的原理也自然不求甚解。先给出代码:
let sendData = new FormData();
sendData.append(‘startTime’, startTime);
sendData.append(‘endTime’, endTime);
sendData.append(‘myExcel’, file); // file 为input type=”file” 的 e.target.files值
$.ajax({
type: “POST”,
url: ‘/api/marketing/coupon/configure’,
dataType: ‘json’,
data: sendData,
contentType: false,
processData: false,
success: function (ret) {
resolve(ret);
},
error: function (err) {
reject(err);
}
});

讲三点:1,如果是form 表单文件,那么需要在form 元素上设置enctype=”multiple/form-data” (只有post 请求时有效,这个属性也可以被button 或者input 的 formenctype 属性覆盖); 为何,因为默认情况下这个值是application/x-www-form-urlencoded 这时候会对表单数据进行编码,但是如果上传的是文件,怎么能对文件数据进行编码呢?所以post 提交文件时候必须用 multiple/form-data;
2, html5 API FormData 对象做的事情就是和 设置enctype 为multiple/form-data 一样;
3,ajax 必须设置contentType: false, processData=false 的原因:因为ajax 发送请求的时候默认会对请求数据和请求类型进行处理, 如果contentType 不设置为falsely, 那就会默认采用application/x-www-form-urlencoded ; 如果processData 不设置为false ,那么就会默认将请求数据进行序列化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值