Postman上传XML文件必须用form-data模式:Key选File、填字段名、Select Files选择文件,Content-Type由Postman自动生成,不可手动修改;误用x-www-form-urlencoded或raw会导致后端收不到文件。

Postman 能同时上传文件和文字,但必须用 form-data 模式,且不能手动改 Content-Type 头——Postman 会自动生成正确的 multipart/form-data 及 boundary,改了反而会失败。
为什么不能选 x-www-form-urlencoded 或 raw JSON
选 x-www-form-urlencoded 时,Postman 会把所有内容 URL 编码成字符串,文件变成乱码或空;选 raw 并设 Content-Type: application/json,则根本无法嵌入二进制文件。只有 form-data 是 HTTP 协议中唯一支持混合文本字段与文件流的标准编码方式。
form-data 中文件和文本字段怎么配
在 Body → form-data 页面里,每个键(key)需单独设置类型:
Postman Mac版是一款专为macOS设计的API开发与测试工具,凭借简洁的界面和强大的功能,深受开发者喜爱。它支持发送各种HTTP请求(GET、POST、PUT等),轻松管理接口集合、环境变量和模拟服务器。Mac用户可享受原生性能、快捷键优化及与系统无缝集成的体验,适用于接口调试、自动化测试和文档生成。无论是个人项目还是团队协作,Postman for Mac都能提升API开发效率,是ma
- 文件字段:key 填后端约定的参数名(如
file、avatar),右侧下拉选File,再点Select Files - 普通文本字段:key 填对应参数名(如
userId、title),右侧下拉选Text,value 直接输字符串 - JSON 字符串字段:key 自定义(如
metadata),右侧选Text,value 粘贴 JSON 字符串(如{"type":"image","tags":["a","b"]}),不要勾选 “Set Content-Type”,更不要手动设application/json—— 这会导致 boundary 解析失败
@RequestParam 和 @RequestPart 后端接收的区别
Spring Boot 后端写法直接影响 Postman 配置是否生效:
- 用
@RequestParam("xxx") String xxx接收纯文本或 JSON 字符串,就按上一条配Text类型即可 - 用
@RequestPart("xxx") MyDto dto接收反序列化后的对象,Postman 中该字段仍选Text,value 填 JSON 字符串,但必须确保后端已配置MappingJackson2HttpMessageConverter支持application/json的 part 解析 - 如果后端混用
@RequestParam(文件) +@RequestPart(对象),Postman 里两个 key 都走form-data,无需额外操作
容易被忽略的三个细节
实际调试中最常卡在这三点:
- Postman 自动生成的
Content-Type请求头带boundary=----WebKitFormBoundary...,千万别手动覆盖——删掉 Headers 里的Content-Type行,让它完全由 Body 模式驱动 - 多个同名 file 字段(如
files)要传数组,Postman 里加多行 key 都叫files、类型都选File,后端用@RequestParam("files") MultipartFile[] files接收 - 中文文件名在部分旧版 Spring(如 5.2.x 以下)可能乱码,建议前端传英文名,或后端加
CommonsMultipartResolver配置defaultEncoding="UTF-8"










