最近一个朋友问我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特有的,是序列化操作,你也可以理解为师怕冲突,所以取消掉
这样就可以了