Ajax同时向服务端传递文件和其他表单数据
以前写的上传文件通常和表单数据分开提交,今天爬坑发现通过ajax一起提交文件和表单数据需要借助FormData作为载体,具体如下:
var formData= new FormData();
formData.append("header", blob);//头像文件
formData.append("nickName", nickName);
formData.append("location", location);
$.ajax({
url: 'register',
type: 'post',
data: formData,
processData: false,
contentType: false,
dataType: 'json',
success: function (result) {
console.log(result);
if (result.code === 0) {
window.location.reload();//刷新当前页面.
} else {
registering = false;
if (result.message) {
alert(result.message);
}
}
},
error: function (a, b, c) {
alert('注册失败');
}
});
});
服务端Spring MVC接收文件的方法一如以往:
MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
MultipartFile header = mRequest.getFile("header");//头像文件
String path=mRequest.getSession().getServletContext().getRealPath("/") + "temp/";
File imageFile = Tools.transferToImage(header,path);