formData方法实现文件上传

FormData 对象的使用:
1.用一些键值对来模拟一系列表单控件:即把form中所有表单元素的namevalue组装成一个queryString,提交到后台。只需把form表单作为参数传入FormData构造函数2. 异步上传二进制文件。

html:

js:

var formData = new FormData($('#importP')[0]);  //注意:new formData的参数是一个DOM对象,而不是jquery对象
$.ajax({
    url: "url",
    data: formData,
    type: "post",
    dataType: "json",
    contentType: false,
    processData: false,
    cache:false,
    async: false,
    success: function (result) {
        if (result.success) {
            alert(result.message);
            window.location.reload();
        } else {
            alert(result.message);
        }
    }
});

注意:

1、Ajax的processData设置为false。因为data值是FormData对象,不需要对数据做处理。

2、

标签加enctyp  e="multipart/form-data"属性。

3、cache设置为false,上传文件不需要缓存。

4、contentType设置为false。因为是由表单构造的FormData对象,且已经声明了属性enctype="mutipart/form-data",

    所以这里设置为false。


你可能感兴趣的:(formData方法实现文件上传)