ajax上传文件

来源:互联网 发布:苏州软件测试培训班 编辑:程序博客网 时间:2024/05/22 08:14

最近一个朋友问我ajax,天真的我以为直接使用ajax可以上传文件,结果让他浪费了很多时间,对于这个重庆的小伙伴,我深感抱歉


待到解决问题,也是知道了为什么不能上传,应该怎么上传


代码如下:

var formData = new FormData(e.target.files[0]);                $.ajax({                    url: "http://we7.qw1000.cn/app/index.php?i=2&c=entry&do=tool/image&m=qw_deal",                    type: "POST",                    contentType: false,                    processData: false,                    data: formData                    success: function(successdata) {                        console.log(successdata)                    },                    fail: function(faildata) {                        console.log(faildata);                    }                });
解读下,由于ajax是发送字符串的,这里的文件确实二进制流(file基层于iblo)

所以我们要用formdata将其转化为字节流,而contenttype则是取消掉默认的contenttyupe,你可以理解为formdata自带了一个,这里怕他们冲突,

processData是jq特有的,是序列化操作,你也可以理解为师怕冲突,所以取消掉

这样就可以了