使用 Axios 将文件发送到 Spring Boot REST
Sending file to Spring Boot REST using Axios
我正在尝试将 csv 文件发送到我的 java spring 启动后端。发送我的文件的代码如下:
var url = 'http://localhost:3001/UploadFile';
var file = this.state.file;
var formData = new FormData();
formData.append("file", file);
axios.post(url, formData, {
headers: { 'Content-Type': 'multipart/form-data' }
});
以及从 Spring 引导接受我的文件的代码:
@CrossOrigin
@RequestMapping("/UploadFile")
@ResponseBody
public void uploadFile(@RequestParam("file") MultipartFile file) {
}
不过,好像不行。我不断收到错误提示 'Current request is not a multipart request'。有什么想法吗?
在前端指定内容类型是不够的,您还需要在控制器中指定内容类型。
您应该告诉 spring 控制器它应该 使用什么 并且将 RequestMethod 设置为 POST 也很好这个:
@CrossOrigin
@RequestMapping("/UploadFile")
@ResponseBody
public void uploadFile(@RequestParam("file") MultipartFile file, method = RequestMethod.POST, consumes = "multipart/form-data") {
}
我正在尝试将 csv 文件发送到我的 java spring 启动后端。发送我的文件的代码如下:
var url = 'http://localhost:3001/UploadFile';
var file = this.state.file;
var formData = new FormData();
formData.append("file", file);
axios.post(url, formData, {
headers: { 'Content-Type': 'multipart/form-data' }
});
以及从 Spring 引导接受我的文件的代码:
@CrossOrigin
@RequestMapping("/UploadFile")
@ResponseBody
public void uploadFile(@RequestParam("file") MultipartFile file) {
}
不过,好像不行。我不断收到错误提示 'Current request is not a multipart request'。有什么想法吗?
在前端指定内容类型是不够的,您还需要在控制器中指定内容类型。 您应该告诉 spring 控制器它应该 使用什么 并且将 RequestMethod 设置为 POST 也很好这个:
@CrossOrigin
@RequestMapping("/UploadFile")
@ResponseBody
public void uploadFile(@RequestParam("file") MultipartFile file, method = RequestMethod.POST, consumes = "multipart/form-data") {
}