码迷,mamicode.com
首页 > Web开发 > 详细

input file图片上传FormData

时间:2016-05-09 15:49:24      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:

FormData() 上传图片,转载请注明出处!!!

$("#updatepic").on("change", function(e) {
    var file = e.target.files[0];
    var fd = new FormData();
    if (file.size < 4194304) { //判断文件大小
        fd.append("UserName", "wangteng");
        fd.append("Platform", 666); // 数字666被立即转换成字符串"666"
        fd.append("file", file);
        console.log(fd);
        $.ajax({
            url: "/User/UploadAvatar",
            type: "POST",
            data: fd,
            contentType: false, //告诉jQuery不要去处理发送的数据(必需,不然报错)
            processData: false, //告诉jQuery不要去设置Content-Type请求头(必需,不然报错)
            success: function(result) {
                //成功do
            },
            error: function(result) {
                //报错do
            }
        });
    }
});

附:

 ajax错误 Uncaught TypeError: Illegal invocation (未捕获类型错误:非法调用)

这种错误可以参考:可能是应为 contentType: false,processData: false 没有加

检查jQuery的文档后发现,如果它不是一个字符串,jQuery的尝试将数据转换成一个字符串。因此,我们需要增加一个选项:processData:false,在这里告诉jQuery不要碰我的数据!另一种选择的contentType:false以防止jQuery来为你添加一个Content-Type头,否则字符串将被丢失和上传失败。

 

input file图片上传FormData

标签:

原文地址:http://www.cnblogs.com/wteng/p/5472811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!