Java Spring boot 2.2.0-多部分文件上载失败,出现错误
我试图在我的spring boot应用程序中执行文件上传APIJava 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
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之外,我还没有配置任何东西