Spring Boot默认限制单次上传文件数量为100个,2.7+版本可通过spring.servlet.multipart.max-file-count配置调整,旧版本需调大Tomcat的maxParameterCount;Postman需手动添加多个同名files字段才能正确发送多文件。

Postman 本身不限制一次上传的文件数量,真正起作用的是后端框架(如 Spring Boot)对 multipart 请求的解析限制,以及服务端资源(内存、磁盘、超时)的实际承载能力。
Spring Boot 默认限制:100 个文件会直接 400
Spring Boot 2.5+ 使用 StandardServletMultipartResolver,默认通过 maxUploadSizePerFile 和 maxUploadSize 控制大小,但还有一个常被忽略的隐式限制:maxInMemorySize 和 fileSizeThreshold 影响临时文件生成逻辑;更重要的是——spring.servlet.multipart.max-file-count(Spring Boot 2.7+ 才支持)默认值为 100。低于该版本时,若未显式配置,容器(如 Tomcat)的 maxParameterCount(默认 1000)会间接限制字段总数,而每个文件在 form-data 中对应一个 Content-Disposition 字段,多文件会快速耗尽该计数。
- 现象:
400 Bad Request,响应体含"The number of uploaded files exceeds the maximum allowed"或日志出现exceeds maxParameterCount - 验证方式:用 Postman 发送 101 个同名
files字段(key 均为files),观察是否被拦截 - 解决路径:
– 若用 Spring Boot 2.7+,加配置:spring.servlet.multipart.max-file-count=500
– 若旧版本,需调大 Tomcat 的maxParameterCount(在application.properties中配server.tomcat.max-parameter-count=2000)
– 同时确保max-request-size足够覆盖所有文件总和
Postman 表单提交中多个同名 file 字段的写法
Postman 不支持“自动展开数组式 key”,必须手动构造多个同名字段,否则后端只收到第一个文件。
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- 错误写法:
files字段类型设为File,然后点“Select Files”选多个——这只会生成一个files字段,带多个Content-Disposition,但 Spring Boot 的@RequestParam("files") List<multipartfile></multipartfile>依赖字段名匹配,单字段多文件不被识别为 List - 正确写法:在 Body → form-data 中,手动添加多个 key 均为
files的条目,每条 type 设为File,再各自点 Select
(即:第1行 key=files, type=File;第2行 key=files, type=File;……) - 注意:Postman UI 不显示重复 key 的警告,但实际请求中会发出多个同名字段,符合 RFC 7578,后端可正常绑定到
List
测试真实上限前必须绕过的三个坑
即使后端配置宽松,Postman 自身或网络链路也会提前截断请求。
-
Content-Length过大导致代理/网关拒绝:Nginx 默认client_max_body_size 1m,Cloudflare 限 100MB,需同步调大 - Postman 的 “Allow reading files outside working directory” 必须开启(Settings → General → ✅ Allow reading files outside working directory),否则选中的文件路径被拒绝读取,表现为上传为空或报错
ENOENT - 浏览器版 Postman(Web 版)有内存限制,上传大量文件易卡死或静默失败;务必使用桌面版(v10.22+),并关闭其他标签页释放内存
真正压测数量上限时,别只看“能不能发出去”,要盯住后端日志里的 MultipartParsingError、Tomcat 的 Failed to parse multipart servlet request,以及 GC 日志里是否触发频繁 full GC——这些比 Postman 的绿色成功提示更真实。
















