You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:无法通过JSON格式的POST API发送PDF文件

解决Postman中发送含Base64编码PDF的POST请求问题

核心问题分析

你之前的两种尝试都存在本质问题:直接传文件路径时,Postman不会自动将文件转换为Base64字符串,后端收到的只是路径文本而非编码后的数据;手动转换Base64则容易出现字符串截断、格式错误,导致后端解析失败。以下是可靠的解决步骤:


1. 用Postman预请求脚本自动生成Base64编码

借助Postman的预请求脚本可以自动读取本地PDF并完成编码,彻底避免手动操作的失误:

  1. 打开目标请求的Pre-request Script标签页
  2. 粘贴以下代码,替换为你的PDF文件绝对路径:
const fs = require('fs');
// Windows路径用双反斜杠(例:C:\\files\\test.pdf),Mac/Linux用正斜杠
const pdfFilePath = '/Users/xxx/Documents/test.pdf'; 
const pdfBase64 = fs.readFileSync(pdfFilePath, { encoding: 'base64' });
// 将编码结果存入环境变量,方便后续调用
pm.environment.set('encodedPdf', pdfBase64);
  1. 点击请求旁的Save保存脚本

2. 配置正确的POST请求

  1. 请求方法选择POST,填写目标接口URL
  2. 切换到Headers标签,添加Content-Type: application/json(若后端要求JSON格式)
  3. 切换到Body标签,选择raw并将格式设置为JSON
  4. 构造包含三个参数的JSON体,通过环境变量引用Base64字符串:
{
  "param1": "你的第一个参数值",
  "param2": "你的第二个参数值",
  "pdfFile": "{{encodedPdf}}"
}
  1. 点击Send发送请求

3. 常见错误排查

  • 文件路径错误:确保使用绝对路径,Windows系统注意转义反斜杠,Mac/Linux直接用正斜杠即可
  • Base64字符串截断:手动复制长Base64字符串容易丢失字符,用预请求脚本生成可完全规避
  • 后端参数不匹配:确认JSON中的参数名与后端接口定义完全一致,比如后端要求参数名为pdf_base64,就不能写成pdfFile
  • 请求头错误:如果后端要求的Content-Type不是application/json(如application/x-www-form-urlencoded),需对应调整请求体格式(改为form-data或x-www-form-urlencoded,参数值填写{{encodedPdf}})

内容的提问来源于stack exchange,提问作者MSH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:35:49