Spring Boot中调整maxPostSize解决大文件上传报错问题
移除自定义的Tomcat Connector配置Bean
你当前自定义的WebServerFactoryCustomizer存在两处问题:一是Spring Boot 2.x已通过server.tomcat.max-http-form-post-size属性原生支持该配置,无需手动编码;二是你错误复用了spring.servlet.multipart.max-request-size(控制整个请求总大小)来设置maxPostSize(仅控制非文件表单参数大小),导致配置逻辑错位。直接删除这个Bean即可。修正application.properties配置
针对报错中「非文件参数数据超限」的核心问题,重点调整server.tomcat.max-http-form-post-size,同时保留文件相关配置:# 单文件最大允许大小 spring.servlet.multipart.max-file-size=250MB # 整个请求(含文件+表单参数)的最大允许大小 spring.servlet.multipart.max-request-size=250MB # 非文件表单参数的最大允许大小,设为-1表示无限制 server.tomcat.max-http-form-post-size=-1 # 允许Tomcat处理超出大小的请求,避免连接重置 server.tomcat.max-swallow-size=-1说明:
server.tomcat.max-http-form-post-size支持具体数值(如250000000)或带单位的字符串(如250MB),设置为-1即可完全取消限制。排查配置覆盖情况
检查是否存在其他配置类、外部Tomcat配置文件(嵌入式Tomcat可忽略)或第三方依赖修改了Tomcat Connector的maxPostSize属性。可以通过启动日志搜索maxPostSize关键词,确认最终生效的配置值是否符合预期。验证触发报错的请求场景
确认触发报错的请求是否包含大体积非文件表单参数(如超长文本字段、大量表单键值对)。如果是,需确保server.tomcat.max-http-form-post-size的取值足够覆盖这些参数的总大小。
内容的提问来源于stack exchange,提问作者Jayden

