如何在Postman中创建变量,实现本地文件在请求体中的复用
当然可以实现!Postman有几种实用方法能帮你自动加载本地文件到请求体,不用每次手动上传,我给你整理了两个最常用的方案:
方案1:通过前置脚本读取文件到变量(适合Raw/JSON请求体)
这个方法适合把文件内容(比如二进制文件转成base64)放到请求体的变量里,所有引用该变量的请求都能自动复用文件:
- 第一步:先创建一个环境变量/全局变量,比如命名为
filePath,值填你本地文件的绝对路径(比如Windows用C:/docs/test.pdf,Mac/Linux用/Users/you/docs/test.pdf,注意统一用正斜杠避免路径问题)。 - 第二步:打开需要复用文件的请求,切换到「Pre-request Script」标签,添加以下代码:
const fs = require('fs'); const filePath = pm.environment.get('filePath'); try { // 读取文件为base64格式(适合二进制文件:图片、PDF、压缩包等) const fileContent = fs.readFileSync(filePath, 'base64'); // 把文件内容存到另一个变量里 pm.environment.set('localFileContent', fileContent); } catch (err) { console.error('读取文件失败:', err.message); // 可选:如果读取失败,可以发送一个请求到echo接口记录错误 pm.sendRequest({ url: 'https://postman-echo.com/post', method: 'POST', body: { mode: 'raw', raw: JSON.stringify({ error: '文件读取失败', details: err.message }) } }); }
- 第三步:在请求体里引用变量,比如你用Raw JSON格式的话,就这么写:
{ "file": "{{localFileContent}}" }
如果是文本文件(比如TXT、JSON),可以把readFileSync的第二个参数改成'utf8',直接读取文本内容。
方案2:自动替换Form-data的文件字段(适合文件上传请求)
如果你的请求是用Form-data格式上传文件,也可以用脚本自动替换字段里的文件:
- 同样先创建
filePath变量存绝对路径。 - 在请求的「Pre-request Script」里添加代码:
const fs = require('fs'); const filePath = pm.environment.get('filePath'); // 获取当前请求的Form-data参数列表 const formDataFields = pm.request.body.formdata; // 找到你要替换的文件字段(把下面的"uploadFile"改成你的字段名) const targetField = formDataFields.find(item => item.key === 'uploadFile'); if (targetField) { try { // 读取本地文件内容 const fileBuffer = fs.readFileSync(filePath); // 设置文件的MIME类型(比如PDF是application/pdf,图片是image/png,根据你的文件改) fileBuffer.type = 'application/pdf'; // 替换字段的文件内容 targetField.value = fileBuffer; // 可选:显示文件路径在Postman界面 targetField.src = filePath; } catch (err) { console.error('加载文件失败:', err.message); } }
- 提前在Form-data里添加好对应的文件字段(比如字段名
uploadFile),初始可以随便选一个测试文件,脚本会自动替换成filePath变量指向的本地文件。
注意事项
- 必须用Postman桌面版:网页版受浏览器安全限制,无法读取本地文件,只有桌面版支持
fs模块读取本地文件。 - 路径一定要是绝对路径:相对路径容易出错,尤其是跨操作系统的时候,统一用正斜杠更稳妥。
- 二进制文件优先用base64:避免编码问题,确保文件内容能正确传输到服务器。
内容的提问来源于stack exchange,提问作者Sergey Ultraman
相关产品推荐
相关产品推荐

