Postman提示“The file above is not in your working directory”是因文件未置于设置的Working Directory中,需在Settings→General→WORKING DIRECTORY选择固定目录并复制文件入内,同时建议开启Allow reading files outside working directory以保障协作与批量运行正常。

Postman上传文件时提示“The file above is not in your working directory”
这是最典型的路径错误,不是接口问题,而是Postman根本没权限读你选的文件。它只认“工作目录(Working Directory)”下的相对路径,选了桌面或下载目录的文件,就会报这个警告,甚至上传后服务端收到空文件或 MultipartFile 为 null。
解决方法很简单:
- 打开 Postman → 点右上角 ⚙️ Settings → 切到 General 标签页
- 找到 WORKING DIRECTORY 区域,点击 Choose
- 选一个你**长期固定使用的目录**,比如
D:/postman-uploads或~/Documents/postman-files - 勾选 Allow reading files outside working directory(可选,但建议打开)
- 把你要上传的测试文件**复制进去**,不是剪切,也不是快捷方式
注意:Allow reading files outside working directory 这个开关不打开,Postman 在共享集合或批量运行时会直接跳过文件字段;开了之后,即使你点选了非工作目录下的文件,也能传成功——但依然推荐把文件放工作目录里,避免协作时队友跑不通。
form-data 中 File 类型 key 为什么总是传不进 Spring Boot 的 MultipartFile
常见现象:Postman 显示请求已发送,但后端 @RequestParam("file") MultipartFile file 是 null,或者抛 Required request part 'file' is not present 错误。
原因几乎都出在前端配置,和后端无关:
-
key名必须和后端@RequestParam注解里的字符串完全一致(区分大小写),比如后端写的是@RequestParam("uploadFile"),Postman 的 key 就不能填file - 务必确认 key 对应的
value类型是 File(下拉框选中File,不是Text) - 不要手动设置
Content-Type请求头——Postman 在form-data模式下会自动生成带正确 boundary 的multipart/form-data,手填反而会破坏结构 - 如果接口用了
@RequestPart,需确保 key 名和参数名一致,且 controller 方法签名匹配
验证技巧:发请求前点左下角 Console,看发出的原始请求体里有没有 Content-Disposition: form-data; name="xxx"; filename="yyy" 这一行。没有,说明 File 类型没生效。
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
Spring Boot 后端接收不到文件或保存失败的常见配置坑
即使 Postman 配对了,后端也可能存不了文件。关键不在代码逻辑,而在两个隐性配置:
- 检查
application.yml是否配置了文件上传路径,且路径**存在、有写权限**:files:upload:path: D:/uploads/
注意末尾斜杠要保留,否则new File(filePath, originalFilename)可能拼出D:/uploadsfilename.jpg - 确认 Spring Boot 内置的文件上传限制没被触发:
在application.yml加:spring:servlet:multipart:max-file-size: 50MBmax-request-size: 50MB
默认只有 1MB,大一点的图片或 PDF 直接 400 -
transferTo()不是原子操作,若目标目录不存在,会抛java.io.FileNotFoundException——别依赖它自动建目录,先用new File(filePath).mkdirs()
额外提醒:transferTo() 在 Windows 上偶尔因文件句柄未释放失败,生产环境建议改用 Files.copy(file.getInputStream(), targetPath, StandardCopyOption.REPLACE_EXISTING)。
Postman 批量运行(Collection Runner)时文件上传失败
单个请求能传,批量跑就报 “file not found” 或返回空响应——这是 Postman 的工作目录机制在批量模式下更严格导致的。
必须同时满足两个条件:
- 所有测试用的文件,**全部放在 Working Directory 下**(不能分散在不同路径)
- 在 Collection Runner 界面右上角,确认已选中正确的 Environment,且该 Environment 没覆盖掉任何影响路径的变量
- 如果用了 Data 文件(CSV/JSON)驱动多组上传,确保 CSV 里的文件名列值,和 Working Directory 中实际存在的文件名**一字不差**(含大小写、扩展名)
最稳妥的做法:在 Collection 设置里启用 “Use relative paths for files”(新版 Postman 默认开启),然后所有 form-data 的 File 字段都只填纯文件名,如 test.pdf,不带路径。

















