You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring 6(Tomcat 10)下无法提升Multipart文件上传上限求助

问题解决:Spring 6 + Tomcat 10 文件上传上限无法提升至10MB

核心问题定位

你的配置存在拼写错误,导致Tomcat的表单POST大小限制未被正确覆盖,同时需确认Tomcat全局Connector配置是否存在额外限制。

具体修正步骤

1. 修复application.properties中的拼写错误

原配置中server.tomcatmax-http-form-post-size=-1缺少分隔点,导致该配置未生效,Tomcat使用默认的表单POST大小限制(约2MB,因编码等因素实际表现为1.5MB)。修正为:

spring.servlet.multipart.max-file-size=10485760
spring.servlet.multipart.max-request-size=10485760
spring.servlet.multipart.file-size-threshold=10485760
server.tomcat.max-swallow-size=-1
server.tomcat.max-http-form-post-size=-1

2. 检查Tomcat server.xml的Connector配置

确保server.xml中的<Connector>标签未设置maxHttpFormPostSize,或显式设置为-1(无限制):

<Connector port="9443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxHttpFormPostSize="-1"
           <!-- 其他原有配置 --> />

该配置会覆盖context.xml和Spring的相关设置,必须确保其限制值大于等于你的目标大小(10MB)。

3. 移除Controller上的@MultipartConfig(推荐)

由于你使用Spring的StandardServletMultipartResolver,Controller上的@MultipartConfig注解配置会被Spring的全局multipart配置覆盖,保留它只会造成配置混淆,建议直接移除:

@Controller
// 移除@MultipartConfig注解
public class YourController {
    // 原有代码
}

4. 验证配置加载

启动应用后,在日志中搜索multipart关键字,确认Spring已正确加载配置,例如日志会输出类似:

Multipart properties: max-file-size=10MB, max-request-size=10MB, file-size-threshold=10MB

原因说明

Tomcat的maxHttpFormPostSize默认限制约为2MB,当你的配置因拼写错误未生效时,超过该大小的请求会被Tomcat直接拦截,此时Spring的multipart配置尚未生效,因此出现MaxUploadSizeExceededException。修正后Tomcat不再限制表单POST大小,Spring的10MB限制会正常生效。

内容的提问来源于stack exchange,提问作者Kit Kline

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 21:55:16