【问题标题】:Spring mvc upload multiple files at once with AJAX doesn't workSpring mvc使用AJAX一次上传多个文件不起作用
【发布时间】:2018-10-23 12:21:51
【问题描述】:

我正在使用 Spring boot 2.0.1,我正在尝试使用 dropzone 上传多个文件。当我在Dropzone.js 上使用uploadMultiple: false 时,一切正常。当我设置uploadMultiple: true 时,我的控制器停止工作。

控制器类如下:

@PostMapping(value = "/img/upload")
public ResponseEntity<?> fileUpload(@RequestParam("file") MultipartFile[] files){

    System.out.println(files.length);
    for (MultipartFile file : files) {
        try {
            file.transferTo(new File("/opt/img/" + file.getOriginalFilename()));
            System.out.println(file.getOriginalFilename());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    return new ResponseEntity<>("File Uploaded Successfully.", HttpStatus.OK);
}

文件不超过1MB,我的设置是

spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

我上传文件时的请求标头:

------WebKitFormBoundaryihPcX9WHR5UA9jGD
Content-Disposition: form-data; name="file[0]"; filename="cars-02-01.png"
Content-Type: image/png


------WebKitFormBoundaryihPcX9WHR5UA9jGD
Content-Disposition: form-data; name="file[1]"; filename="Screenshot from 2018-05-03 23-31-53.jpg"
Content-Type: image/jpeg

一切看起来都很完美。我还是找不到这个问题的原因?

【问题讨论】:

    标签: ajax spring-mvc tomcat dropzone.js dropzone


    【解决方案1】:

    看来我应该使用MultipartHttpServletRequest 而不是MultipartFile[] files。我将方法更改为:

    @PostMapping(value = "/img/upload")
    public ResponseEntity<?> fileUpload(MultipartHttpServletRequest request) {
        Map<String, MultipartFile> fileMap = request.getFileMap();
    
        for (MultipartFile file : fileMap.values()) {
            try {
                file.transferTo(new File("/opt/img/" + file.getOriginalFilename()));
                System.out.println(file.getOriginalFilename());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return new ResponseEntity<>("File Uploaded Successfully.", HttpStatus.OK);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多