Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring boot 2.2.0-多部分文件上载失败,出现错误_Java_Spring_Spring Boot - Fatal编程技术网

Java Spring boot 2.2.0-多部分文件上载失败,出现错误

Java Spring boot 2.2.0-多部分文件上载失败,出现错误,java,spring,spring-boot,Java,Spring,Spring Boot,我试图在我的spring boot应用程序中执行文件上传API public CertificateRequest uploadfileAndParse(@RequestParam("file") MultipartFile file, HttpServletRequest request){ CertificateRequest certificateRequest = new CertificateRequest(); if(!file.isEmpty

我试图在我的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数据

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

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.getAllowCasalMultipartParsing()为false。看起来tomcat上下文中没有设置多部分配置。我正在使用嵌入式tomcat。

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

Spring Boot 1.3.x及更早版本

  multipart.maxFileSize
   multipart.maxRequestSize
弹簧靴1.4.x和1.5.x

spring.http.multipart.maxFileSize
spring.http.multipart.maxRequestSize
spring.servlet.multipart.maxFileSize
spring.servlet.multipart.maxRequestSize
弹簧靴2.x

spring.http.multipart.maxFileSize
spring.http.multipart.maxRequestSize
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”修复了此问题

能否提供请求的有效负载?看起来一切都很好,除了payloadbrowser中提供的数据显示表单数据,如“-----WebKitFormBoundaryNolkqM1CoYnFYDz5内容配置:表单数据;name=“file”;filename=“test.txt”内容类型:text/plain----WebKitFormBoundaryNolkqM1CoYnFYDz5---`您是否尝试过@RequestMapping(consumes=“multipart/form data”)是添加了@RequestMapping(value=“uploadfile”,consumes=“multipart/form data”)作为API方法的注释。。仍然得到相同的错误GetAllowCasalMultipartParsing此属性返回false always,这会从嵌入tomcat jar的连接器文件夹下的Request.java引发异常。您正在tomcat内部运行war文件吗?还是简单的spring启动应用程序?它是一个简单的spring启动应用程序。到目前为止,除了application.properties之外,我还没有配置任何东西