代码之家  ›  专栏  ›  技术社区  ›  LEJ

使用Axios将文件发送到Spring Boot REST

  •  4
  • LEJ  · 技术社区  · 6 年前

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

        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 回复  |  直到 6 年前
        1
  •  4
  •   Martin Čuka    6 年前

    仅在前端指定内容类型是不够的,还需要在控制器中指定。 您应该告诉spring控制器它应该做什么 消费 另外,将RequestMethod设置为 发布 这样地:

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