Tomcat 8 中的多部分文件最大大小配置

Multipart file maximum size configuration in Tomcat 8

我的应用程序服务器是 Tomcat,我需要将文件(大尺寸)上传到我的应用程序。 POST 请求的正文大小非常长,如 15 MB 或更多。

我可以设置任何类型的配置或代码来解决这个问题吗?

请记住这是multipart文件上传请求

非常感谢

Tomcat 7 及更高版本有一个名为 maxSwallowSize 的配置,它指定上传的字节数,默认值为 2MB。如果您的应用程序配置为接受更大的文件,例如 Spring 中的 MultipartResolver,Tomcat 将拒绝请求。

因为您可以在您的应用程序中配置文件大小,我的建议是使用值 -1{TOMCAT_HOME}/conf/server.xml 中禁用 maxShallowSize,然后仅使用您的应用程序中配置的大小

如下:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
            maxSwallowSize="-1"/>

您可以找到详细的描述 here(使用 spring 框架)

1.首先配置最大文件上传 Spring(覆盖默认值 1MB)

形式 spring mvc 创建 bean :

@Bean
public CommonsMultipartResolver multipartResolver() {
     CommonsMultipartResolver resolver=new CommonsMultipartResolver();
     resolver.setMaxUploadSize(15728640);
     resolver.setMaxUploadSizePerFile(15728640);
     return resolver;
}

for spring boot : 添加 application.properties

spring.servlet.multipart.max-file-size=15MB
spring.servlet.multipart.max-request-size=15MB

2。第二件事配置你的 tomcat :

找到你的服务器 xml tomcat 文件 $TOMCAT_HOME/conf/server.xml

然后通过示例更改您的连接器:

<Connector port="8080" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="8443"
  maxSwallowSize = "-1"/>