用ajax发送input file文件

获取input file的文件对象
$("input[type=file]").change(function(e){
	file = e.currentTarget.files[0];
})

e.currentTarget.files[0]是个对象,ajax默认不能发送对象,要通过JSON.stringify()转成字符串,否则报错如下:
报错e.currentTarget.files[0]对象经过JSON.stringify()之后显示是{},我的天!!!我也不知道为什么,但是JSON.stringify()是可以处理object的呀,搞了好久也还是{}
因为还没有后端处理,我也不知道后端拿到的是不是空,我通常都是在浏览器调试面板的Network查看我发送的数据的。
在网上查了很久之后,终于找到方法:

$.ajax({
                url:url,
                cache: false,
                type:'post',
                processData : false,
                contentType : false,
                data:data
            });

在一般情况下使用ajax请求,processData(默认为true)不需要设置,但是当使用fromdata上传文件时,发送的对象不需要转化为对象,所以必须设置为false。
发送的参数显示的是[object object]
在这里插入图片描述

当然,网上有一些用formData()发送文件的

var form = new FormData();
        form.append("file", file);
        console.log(form.get("file"));// 打印文件对象
       

直接console.log(form)是看不到里面的参数的,是个空对象,但是用get(“键值”)可以打印出来,才知道 没有打印≠空

参考:https://www.cnblogs.com/sk-3/p/8194903.html
有个博主写的很好->https://blog.csdn.net/zdy0_2004/article/details/48230685

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值