Skip to content

Auto-configured MultipartConfigElement prevents CommonsMultipartResolver from resolving request parts #7735

@peilongwu

Description

@peilongwu

I used Spring Boot 1.2.6 before, So I want to upgrade Spring Boot to 1.4.2 and upgrade Spring Framework to 4.3.5, when I changed my maven pom, The Apache Commons FileUpload parseRequest() returning no items. Then I changed Spring Boot to 1.3.8 and Spring Framework to 4.2.8, the Apache Commons FileUpload can work. I don't know why. The following is my maven pom and my code.

Maven pom

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot</artifactId>
        <version>1.3.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.3.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
        <version>1.3.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
        <version>1.3.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j</artifactId>
        <version>1.3.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
        <version>1.3.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-ws</artifactId>
        <version>1.3.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.2.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>4.2.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.2.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>4.2.8.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-ldap</artifactId>
        <version>4.2.0.RELEASE</version>
      </dependency>

Code

   DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(1 * 1024 * 1024);
    File tmpDir = new File("tempfile");
    if (!tmpDir.exists()) {
      tmpDir.mkdir();
    }
    File uploadtmp = new File("uploadtmp");
    if (!uploadtmp.exists()) {
      uploadtmp.mkdir();
    }
    factory.setRepository(tmpDir);
    ServletFileUpload sfu = new ServletFileUpload(factory);
    sfu.setFileSizeMax(-1);
    sfu.setSizeMax(-1);
    sfu.setHeaderEncoding("UTF-8");
    List<FileItem> fileItems = (List<FileItem>) sfu.parseRequest(request);

When I use Spring Boot 1.4.2 and Spring Framework 4.3.5, the fileItems is empty.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions