用form来提交表单时,如果form里面同时有普通文本和文件,如果form添加enctype="multipart/form-data"属性,那么普通文本不能被序列化,因为文件上传和普通文本的编码方式不一致。可以不用写enctype="multipart/form-data"属性上传文件,即用formData来存放普通文本和文件数据传入后台。
js代码:
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
formData.append('name', $('#name').val());
$.ajax({
url: url,
type: 'POST',
cache: false,
data: formData,
processData: false,
contentType: false,
success: function () {
alert("文件上传成功!")
},
error: function () {
}
});
-----end-----