我们有一个基于Java spring-boot的服务器和一个反应JS UI应用程序。 我们需要实现从react应用程序到服务器的文件上传。
服务器控制器代码:
@RequestMapping(value = "/aaa/{id}/upload", method = RequestMethod.PUT, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Object uploadFile(@PathVariable("id") Integer id, @RequestParam("file") MultipartFile file, HttpServletRequest request) {
...
logic
...
}
使用邮递员,我们可以成功上传文件。我们无法通过反应JS应用程序来实现。
这是反应JS上传文件代码:
uploadFile(file, type) {
const formData = new FormData();
formData.append('file', file);
return axios.put(`aaa/1/upload`, file, {
headers: {
'content-type': 'multipart/mixed; boundary=--ABC123Boundary'
}
})
.then(() => {
NotificationsManager.info('File successfully uploaded.')
})
.catch((err) => {
NotificationsManager.error(err.message, `Error in uploading file`);
});
}
我们尝试了边界,没有边界,默认边界......没有任何作用。
更新:我们收到此错误:
"Bad Request"
exception:
"org.springframework.web.multipart.support.MissingServletRequestPartException"
message:"Required request part 'file' is not present"
我们做错了什么?
此致 IDO