上传excel文件大小超过1MB时出现错误。
[org.springframework.web.multipart.MultipartException:无法解析多部分servlet请求; 嵌套的异常是java.lang.IllegalStateException:org.apache.tomcat.util.http.fileupload.FileUploadBase $ FileSizeLimitExceededException: 字段文件超过了其最大允许大小1048576字节。]
我试图通过遵循配置更改来解决,但没有一个对我有帮助。
在这里,我正在使用(1)Spring boot:1.5.2(2)Tomcat 9.0
步骤1:application.yml
spring:
http:
multipart:
max-file-size:5MB
max-request-size:5MB
第2步:我也尝试了以下注释:
@MultipartConfig(fileSizeThreshold=1024*1024*10,maxFileSize=1024*1024*10,maxRequestSize=1024*1024*10)
步骤3:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxSwallowSize="-1" />
您能帮忙吗
答案 0 :(得分:1)
Spring的属性S
中有一个错字是大写而不是小写。
使用spring-boot 1.5.2,您可以在application.yml
中使用以下属性
spring:
http:
multipart:
max-file-size: 100MB
max-request-size: 100MB
请确保在yaml文件中使用空格而不是制表符。
答案 1 :(得分:1)
我尝试了Alien的解决方案,但给出了过时的错误,因此我想分享新的解决方法
spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.max-file-size=10MB
答案 2 :(得分:1)
尝试使用以下代码:
spring:
profiles: development
servlet:
multipart:
enabled: true
max-file-size: 10MB
max-request-size: 10MB
答案 3 :(得分:0)
在SpringBootWebApplication类(主要)中包含以下代码:
对于Java 8:
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbedded() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
//-1 for unlimited
((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
}
});
return tomcat;
}
对于Java 7:
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbedded() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
tomcat.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
//-1 for unlimited
((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
}
}
});
return tomcat;
}