配置spring.http.multipart.max-file-size忽略大小或返回关闭的流

时间:2017-09-07 12:28:54

标签: spring spring-mvc tomcat spring-boot file-upload

我有一个Spring-boot应用程序版本1.3.3.RELEASE正在运行Spring 4.2.5.RELEASE

下面我有一些我试图解决这个问题的项目。我的问题:

  • 我是否需要定义自己的多部分解析器?
  • 为什么Spring / Tomcat没有拿起我的多部分设置?

我正在尝试接受超过1MB的Multipart文件。我已经配置了看似合适的配置

# Spring http settings
spring.http.multipart.max-file-size=11MB
spring.http.multipart.max-request-size=11MB

不幸的是,这似乎没有任何影响:

  

org.apache.tomcat.util.http.fileupload.FileUploadBase $ FileSizeLimitExceededException:   字段文件超出了允许的最大大小1048576字节。

此时似乎没有超过Tomcat。经过一番研究后,我尝试添加自己的多部分解析器。

@Bean
public CommonsMultipartResolver multipartResolver() {
    CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
    multipartResolver.setMaxUploadSize(10 * 1024 * 1024);
    multipartResolver.setMaxUploadSizePerFile(10 * 1024 * 1024);
    return new CommonsMultipartResolver();
}

这会返回一个新的错误,让我难以理解:

  

请求处理失败;嵌套异常是   org.springframework.web.multipart.MultipartException:无法解析   多部分servlet请求;嵌套异常是   org.apache.commons.fileupload.FileUploadException:Stream closed

我的请求如下:

curl -X POST \
  /application/75dc9981-61ac-4fa0-b316-790b764230a3/pending \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F files=@/Users/paulscoder/Documents/sticky_phalcon_header.gif

我的请求映射如下所示:

@RequestMapping(
            value = "/application/{applicationId}/pending",
            method = POST)
    public ResponseEntity<?> uploadFiles(
            @PathVariable("applicationId") UUID applicationId,
            @RequestParam(value = "docId", required = false) String docId,
            @RequestParam(value = "type", required = false) String type,
            @RequestParam(value = "files") MultipartFile[] files) throws Exception {...

0 个答案:

没有答案