Tomcat默认上传限制为2MB,即单个文件和整个表单总大小均不得超过2097152字节;该限制源于Servlet 3.0+内置multipart解析器的maxFileSize与maxRequestSize默认值。

Tomcat默认上传限制是多少
Tomcat本身不直接限制XML文件(或任何文件)上传大小,真正起作用的是Servlet容器对multipart/form-data请求的解析限制。从Tomcat 8.5开始,默认使用内置的StandardMultipartResolver,其maxFileSize和maxRequestSize默认均为2MB(即2097152字节)。这意味着:单个文件超2MB,或整个表单(含多个文件、文本字段)总大小超2MB,都会触发400 Bad Request或java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException错误。
修改web.xml配置(适用于Servlet 3.0+应用)
这是最常用、也最推荐的方式,无需改Tomcat全局配置,只影响当前Web应用。需在应用的WEB-INF/web.xml中添加节点:
dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring-mvc.xml 1 52428800 52428800 0
dispatcher /
注意:必须放在内,且该servlet必须是实际处理文件上传的入口(如Spring MVC的DispatcherServlet)。如果用的是其他框架(如Struts2),要确保对应servlet被配置。
Spring Boot项目怎么配(application.properties/yml)
Spring Boot 2.0+已弃用spring.http.multipart.*,统一使用spring.servlet.multipart.*。若上传的是XML文件,仍需确保后端接收逻辑(如@RequestParam("file") MultipartFile file)能正常绑定:
发卡宝是一个专业的软件卡密等虚拟商品在线交易平台,拥有多种兑换方式,费率低,结算快,正规企业平台一直稳定运营,24小时不间断提供自动发卡服务。【模板说明】试用版自带一套模板(响应式)【环境支持】PHP环境 / 200M或以上空间大小 / 开启父路径 / 设置index.php为默认首页 / 目录写入权限需要开启【数据库】MySQL【安装步骤】将文件上传至空间目录,运行“http://域名/inst
spring.servlet.multipart.max-file-size=50MB spring.servlet.multipart.max-request-size=50MB spring.servlet.multipart.file-size-threshold=0
常见坑点:
- 单位写错:支持
MB、KB、B,但不能写mb(大小写敏感) - 配置位置错误:必须放在
application.properties(或application.yml),不能写在logback-spring.xml等无关配置里 - 与Nginx共存时:若前端有Nginx反向代理,还需同步设置
client_max_body_size,否则请求根本到不了Tomcat
为什么改了配置还是报400?排查关键点
上传失败却不报具体异常,往往是因为错误被静默吞掉或返回了通用HTTP状态码。重点检查以下几处:
- 确认请求Content-Type确实是
multipart/form-data,且boundary格式合法;XML文件名含中文或特殊字符时,需确保前端用encodeURIComponent或设置Content-Disposition的filename*=编码 - 查看Tomcat日志(
logs/catalina.out或localhost.),搜索.log SizeLimitExceededException——如果没出现,说明限制没生效或根本没走到Servlet解析阶段 - Spring应用中,若自定义了
MultipartResolver(如CommonsMultipartResolver),则web.xml或@Bean里的配置会覆盖默认行为,此时应优先检查该Bean的maxUploadSize属性 - Java启动参数中设置了
-Dorg.apache.catalina.connector.RECYCLE_FACADES=true可能导致部分异常堆栈丢失,临时关闭有助于定位
XML文件本身没有特殊上传路径,它和TXT、ZIP一样受同一套multipart限制约束;真正容易被忽略的是:当XML作为text/xml直接POST(非form-data)时,走的是请求体读取流程,此时限制来自maxHttpHeaderSize或maxPostSize(server.xml中Connector配置),而非multipart配置。









