繁体   English   中英

Spring boot 2.2.0 - 多部分文件上传失败并出现错误

[英]Spring boot 2.2.0 - Multipart File upload failing with error

我正在尝试在我的 Spring Boot 应用程序中执行文件上传 API。下面是我的控制器方法

    public CertificateRequest uploadfileAndParse(@RequestParam("file") MultipartFile file, HttpServletRequest request){
        CertificateRequest certificateRequest = new CertificateRequest();
        if(!file.isEmpty()){
            certificateRequest.setCity("UN");
        }

        return certificateRequest;
    }

我在 application.properties 文件中配置了多部分属性,如下所示

spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=2KB
spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=215MB

在请求头中,我将 Content-Type 属性设置为 multipart/form-data

但是我在上传文件时收到以下错误

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided] with root cause
java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been providedat org.apache.catalina.connector.Request.parseParts(Request.java:2802) ~[tomcat-embed-core-9.0.27.jar:9.0.27]

不知道我还缺少什么。 在调试时我还发现

context.getAllowCasualMultipartParsing() 是假的。看起来像多部分配置没有在 tomcat 上下文中设置。我正在使用嵌入式 tomcat。

您可以根据版本使用以下配置

Spring Boot 1.3.x 及更早版本

  multipart.maxFileSize
   multipart.maxRequestSize

Spring Boot 1.4.x 和 1.5.x

spring.http.multipart.maxFileSize
spring.http.multipart.maxRequestSize

春季启动 2.x

spring.servlet.multipart.maxFileSize
spring.servlet.multipart.maxRequestSize

目前,您使用的是 2.x,然后您可以将配置更改为

spring.servlet.multipart.maxFileSize
spring.servlet.multipart.maxRequestSize

我已经解决了这个问题。 在我的 springApplication 类MultipartAutoConfiguration被排除在外

@SpringBootApplication(exclude = {MultipartAutoConfiguration.class})

通过从排除列表中删除“MultipartAutoConfiguration.class”来修复它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM