使用Axios

时间:2018-02-23 11:30:37

标签: spring spring-boot post multipartform-data axios

我正在尝试将csv文件发送到我的java spring boot后端。发送我的文件的代码如下:

    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 Boot接受我的文件的代码:

    @CrossOrigin
    @RequestMapping("/UploadFile")
    @ResponseBody
    public void uploadFile(@RequestParam("file") MultipartFile file) {

    }

然而,它似乎不起作用。我一直收到错误,说“当前请求不是多部分请求”。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在前端中指定内容类型还不够,您还需要在控制器中指定内容类型。 您应该告诉spring controller 要消耗什么,最好将RequestMethod设置为 POST ,如下所示:

@CrossOrigin
@RequestMapping("/UploadFile")
@ResponseBody
public void uploadFile(@RequestParam("file") MultipartFile file, method = RequestMethod.POST, consumes = "multipart/form-data") {

}