我有一个相当简单的Spring Boot web应用程序,我有一个带有enctype=“multipart/form data”
表单的HTML页面。我得到了这个错误:
多部分请求包含的参数数据(不包括上载的文件)超过了关联连接器上设置的maxPostSize限制。
我使用的是SpringBoot的默认嵌入式tomcat服务器。显然,默认的maxPostSize
值是2兆字节。有没有办法编辑此值?通过应用程序执行此操作。属性
最好,而不必创建自定义bean或处理xml文件。
如果在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编码身体的人。
找到了解决办法。将此代码添加到运行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.
在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改进数据库查询,其工作原理如下: 但是现在我想在启动时预填充完整的图书缓存。这意味着我要调用并将所有值放入缓存。该例行程序不应仅定期安排。 但是,使用时,如何显式填充缓存?