使用 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") {

}