SpringBoot 如何同时接收文件以及json参数
前端传参
js
let upData = new FormData();
// 将文件列表赋值给files参数
this.files.forEach(function (file) {
upData.append("files", file);
});
this.firmwareSaveDto = this.formData;
let commodityDto = JSON.stringify(this.firmwareSaveDto);
// 将json对象赋值给saveDto参数
upData.append(
"saveDto",
new Blob([commodityDto], { type: "application/json" })
);
// 发送请求,注意请求头信息
axios.post('/v1/test/upload_files', upData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
后端接收
java
/**
* 上传文件
* @param files
* @param saveDto
* @return
*/
@PostMapping(value = "/upload_files",name = "上传文件")
public ExecuteResult uploadFiles(
@RequestPart("files") MultipartFile[] files,
@RequestPart("saveDto") @Valid SaveDtosaveDto){
// 逻辑代码。。。。。。
}
注意
- 后端【同时接收文件以及json参数】时使用
@RequestPart
注解。 - 后端与前段要约定好文件与json的对应参数名
files、saveDto
。 - 前端要注意
请求头信息