当前位置: 首页 > 知识库问答 >
问题:

在Spring启动中增加HTTP Post maxPostsize

马清野
2023-03-14

我有一个相当简单的Spring Boot web应用程序,我有一个带有enctype=“multipart/form data”表单的HTML页面。我得到了这个错误:

多部分请求包含的参数数据(不包括上载的文件)超过了关联连接器上设置的maxPostSize限制。

我使用的是SpringBoot的默认嵌入式tomcat服务器。显然,默认的maxPostSize值是2兆字节。有没有办法编辑此值?通过应用程序执行此操作。属性最好,而不必创建自定义bean或处理xml文件。

共有3个答案

太叔昆
2023-03-14

如果在POST请求中使用x-www-form-urlencoded mediatype(如我所做的),spring boot的multipart属性将不起作用。如果Spring Boot应用程序也在启动tomcat,则需要在应用程序中设置以下属性。属性文件:

# Setting max size of post requests to 6MB (default: 2MB)
server.tomcat.max-http-post-size=6291456

我在spring boot文档中找不到这些信息。希望它能帮助那些坚持x-www-form-URL编码身体的人。

薛兴德
2023-03-14

找到了解决办法。将此代码添加到运行SpringA的相同类pplication.run.

// Set maxPostSize of embedded tomcat server to 10 megabytes (default is 2 MB, not large enough to support file uploads > 1.5 MB)
@Bean
EmbeddedServletContainerCustomizer containerCustomizer() throws Exception {
    return (ConfigurableEmbeddedServletContainer container) -> {
        if (container instanceof TomcatEmbeddedServletContainerFactory) {
            TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory) container;
            tomcat.addConnectorCustomizers(
                (connector) -> {
                    connector.setMaxPostSize(10000000); // 10 MB
                }
            );
        }
    };
}

编辑:显然,将此添加到您的application.properties文件也会增加maxPostsize,但我自己还没有尝试过,所以我无法确认。

multipart.maxFileSize=10Mb # Max file size.
multipart.maxRequestSize=10Mb # Max request size.
谢弘阔
2023-03-14

在application.properties文件中写:

# Max file size.
spring.http.multipart.max-file-size=1Mb
# Max request size.
spring.http.multipart.max-request-size=10Mb

根据需要调整尺寸。

注意:从SpringBoot2开始,您现在可以这样做了

# Max file size.
spring.servlet.multipart.max-file-size=1MB
# Max request size.
spring.servlet.multipart.max-request-size=10MB

附录A.常见应用特性-Spring

 类似资料:
  • 问题内容: 如何从Android客户端自动递增存储在Firebase中的值? 当前:我声明。当我增加时,我看到值2、3等被存储。很好,但是当我重新运行项目时,再次设置为等于1。 我希望它的行为像静态变量一样,因此我可以创建一个从1到无穷大的id,而无需重置。 更新失败 我使用以下代码将Firebase参考和一个字符串传递给函数incrementCounter。 现在,我尝试在oncomplete方

  • 我正在使用spring-cloud-sleuth为http请求、rabbitMQ消息和sheduled事件的日志添加相关id。添加依赖项后,应用程序的启动时间增加了50%。所有其他配置属性,如spring.sleuth.async.enabled和spring.sleuth.grpc.enabled的默认值为true。如果我想减少我的应用程序启动时间,我需要在我的应用程序属性文件中将所有这些都过期

  • 问题内容: 我有一个相当简单的Spring Boot Web应用程序,我有一个HTML页面,其表单为。我收到此错误: 多部分请求包含的参数数据(不包括上载的文件)超出了在关联的连接器上设置的maxPostSize的限制。 我正在使用Spring Boot的默认嵌入式tomcat服务器。显然,默认值为2兆字节。有什么办法可以编辑此值?这样做最好,而不是必须创建自定义的bean或将xml文件弄乱。 问

  • 问题内容: 我正在使用spring-cache来改善数据库查询,如下所示可以正常工作: 但是现在我想在启动时预先填充完整的图书缓存。这意味着我要调用并将所有值放入缓存。该例程应仅定期进行安排。 但是在使用时如何显式填充缓存? 问题答案: 像以前一样使用缓存,添加调度程序以更新缓存,下面是代码段。 确保你将为一个参数返回对象(默认)。否则,请公开其中的方法,以避免直接使用cacheManager。

  • 我使用spring cache改进数据库查询,其工作原理如下: 但是现在我想在启动时预填充完整的图书缓存。这意味着我要调用并将所有值放入缓存。该例行程序不应仅定期安排。 但是,使用时,如何显式填充缓存?