tomcat 如何在Sping Boot 中增加maxPostSize

kxkpmulp  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(162)

上传大文件时出现以下错误:* 多部分请求包含的参数数据(不包括上载的文件)超出了在关联连接器上设置的maxPostSize限制]*
我在www.example.com中有以下内容application.properties(我还尝试将这些内容设置为-1,即无限制)

spring.servlet.multipart.max-file-size=250MB
spring.servlet.multipart.max-request-size=250MB
server.tomcat.max-http-form-post-size=250000000
server.tomcat.max-swallow-size=250000000

和下面在主应用程序类Application.java:

/* Configures the embedded Tomcat max post size */
@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> containerCustomizer() {

    return (TomcatServletWebServerFactory container) -> {

        String propVal = environment.getProperty("spring.servlet.multipart.max-request-size");
        int postSize = 10000000; // Default - 10MB

        if (!propVal.isEmpty()) {
            postSize = Integer.parseInt(propVal.substring(0, propVal.length() - 2));

            if (propVal.endsWith("KB")) {
                postSize = postSize * 1000;
            }
            else if (propVal.endsWith("MB")) {
                postSize = postSize * 1000000;
            }
        }
        // Needs to be final for lambda expression bellow
        final int maxPostSize = postSize;

        container.addConnectorCustomizers((connector) -> connector.setMaxPostSize(maxPostSize));
    };
}

然而,我还是收到了错误。有人有什么建议或想法吗?
Sping Boot 版本= 2.6.6,Tomcat版本= Apache Tomcat/9.0.62

nbnkbykc

nbnkbykc1#

简单,单位为application.properties

# What you want
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=20MB

相关问题