build.gradle里面添加了依赖spring-boot-starter-web,这个依赖默认使用tomcat作为底层web容器。如果前端有提交比较大的文件要修改允许的最大文件大小,可以在application.properties中使用:
-
spring.http.multipart.max-file-size=200MB
-
spring.http.multipart.max-request-size=200MB
比如以上我将最大单个文件大小修改200M。
但是如果碰到要将文件编码比如base64之后作为body字段提交,以上配置就无效了,这时候得修改tomcat。
-
@Configuration
-
public class TomcatConfig {
-
@Value("${http.multipart.max-post-size}")
-
private int maxPostSize;
-
EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
-
return (ConfigurableEmbeddedServletContainer container) -> {
-
if (container instanceof TomcatEmbeddedServletContainerFactory) {
-
TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory)container;
-
tomcat.addConnectorCustomizers((connector) -> {
-
connector.setMaxPostSize(this.maxPostSize);
-
});
-
}
-
};
-
}
-
}
可以看到我用
@Value("${http.multipart.max-post-size}")
来引用application.properties中名为http.multipart.max-post-size的值来作为最大body大小。
所以我在application.properties中有一个配置项:
http.multipart.max-post-size=200000000