必须在form-data模式下将Key行Value列类型从Text显式切换为File,点击“Select Files”选择实际文件;若仅显示“no file selected”或手动填路径则失败,且不可用Pre-request Script读取本地文件。

Postman form-data 中 File 类型字段怎么设
必须在 form-data 模式下,把某一行的 Key 类型从默认的 Text 显式切换为 File,否则后端收不到文件字段。这个动作不是靠填值或改 Header 完成的,而是靠右键或下拉菜单触发类型变更。
实操要点:
- 点开 Body → 选
form-data - 在 Key 列输入字段名(如
xmlFile、file、upload,必须和后端约定一致) - 点击该行 Value 列右侧的下拉箭头,选择
File(不是Text,也不是留空) - 此时 Value 栏会变成“Select Files”按钮,点击后真正选中本地 XML 或其他文件
- 别手动在 Value 栏里粘路径或写
@xxx.xml——那是curl -F的写法,Postman 不认
为什么点了 Select Files 却还是报 MissingServletRequestPartException
常见原因是“看起来选了,其实没生效”。Postman 界面容易误导:按钮显示“no file selected”但用户以为已加载;或者点了按钮却在文件对话框里取消/没点 Open。
排查清单:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- 确认该行 Value 栏显示的是真实文件名(如
config.xml),而不是“no file selected”或空白 - 检查 Key 名是否大小写/下划线完全匹配后端要求(如后端要
data_file,你填了dataFile就失败) - XML 文件路径含中文或空格?某些旧版 Postman 会静默丢弃,换到
C:/test/config.xml这类纯英文路径重试 - 有没有误把整个请求 Body 设成了
raw或x-www-form-urlencoded?这两种模式根本不会生成multipart/form-databoundary,后端解析器直接跳过文件字段
Content-Type 要不要手动设成 application/xml
Postman 会自动为选中的 XML 文件设 Content-Type 为 application/xml 或 text/xml,多数 Spring Boot 后端都接受两者。但有些老系统或强校验中间件只认 application/xml,这时就得手动覆盖。
操作很轻量:
- 在对应
File行右侧,点Content-Type字段旁的铅笔图标 - 删掉默认值,手输
application/xml - 只改这一行,别动其他
Text字段的Content-Type(比如userId字段不该设成 XML) - 发请求前点右上角
Code,确认生成的 cURL 包含类似-F "xmlFile=@config.xml;type=application/xml"的片段
能不能用 Pre-request Script 自动读取本地 XML 内容
不能。Postman 的 Pre-request Script 运行在沙盒环境,没有文件系统读取权限,无法访问本地磁盘上的 XML 文件。所谓“自动上传”只能靠人工点选,或换成脚本工具(如 curl + shell、Python requests)批量处理。
这点特别容易被忽略:有人以为写个 pm.files.read("xxx.xml") 就能注入内容,但实际上这个 API 不存在,Postman 也不提供任何同步读文件的接口。所有文件上传行为,必须经由 UI 上的 Select Files 触发,且仅在发送瞬间绑定。

















