一、注解作用
使用该注解,可以实现同时上传表单数据和文件
二、经常遇到的问题
三、实现代码样例
1、前端
var formData = new FormData();
/
// file 为想要上传的文件
f
formData.append("file", $("#goods_img_input")[0].files[0]);
/
//goodInfo 里面即为想要传到后端的json数据
v
var goodInfo = JSON.stringify({
"goods_id":parseInt($('#goods_id').text()),
"name": $('#name').val(),
"price": $('#price').val(),
"inventory":$('#inventory').val(),
"details": $('#details').val()
}
})
f
formData.append('goods', new Blob([goodInfo],{type: "application/json"}));
/
//发送ajax请求
$
$.ajax({
url: "/goods/addGoods",
type: "post",
//忽略contentType
contentType: false,
//取消序列换 formData本来就是序列化好的
processData: false,
dataType: "json",
data: formData,
success: function (res) {
if (res>0){
alert("修改成功!");
window.location.href = "/goods/findAll/1";
} else {
alert("修改失败,请联系系统管理员!");
}
}
}
});
2、后端
@PostMapping("/updateGoods")
@ResponseBody
public void updateGoods(
@RequestPart("goods") Goods good,
@RequestPart("file") MultipartFile file) {
System.out.println("good"+good);
System.out.println("file"+file);
}
}