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

Filemaker Pro 19调用QBO v3 API上传发票附件报错排查

故障现象

通过FileMaker Pro 19向QBO对应发票上传附件时,运行编写的请求代码返回如下错误:

System Failure Error: Could find no Content-Disposition header within part
报错截图如下:
QBO附件上传接口报错截图

故障原因

该错误是QBO接口解析multipart/form-data请求体失败导致,核心触发原因是请求的分段不符合规范:

  • 构造multipart请求时,参数/文件分段未携带标准 Content-Disposition 请求头,或头格式不符合RFC 1867规范
  • 请求头中声明的boundary边界值,和请求体中实际使用的边界值不匹配,导致服务端无法正确拆分请求分段,识别不到分段头
  • FileMaker Pro 19原生的表单提交逻辑在处理二进制文件上传时,不会自动给文件分段补全符合QBO要求的标准 Content-Disposition 头
修正步骤
  • 放弃依赖FileMaker自动生成multipart表单请求体,手动拼接符合规范的请求结构
    每个分段必须严格遵循格式要求,文件分段参考如下:
    --{自定义boundary字符串}
    Content-Disposition: form-data; name="file"; filename="实际附件文件名.后缀"
    Content-Type: 对应文件的MIME类型(如application/pdf、image/png)
    
    {二进制格式的附件原始内容}
    
    业务参数分段(如关联发票ID)参考如下:
    --{自定义boundary字符串}
    Content-Disposition: form-data; name="关联参数名(如InvoiceRef)"
    
    {对应参数值}
    
    所有分段的换行必须使用\r\n(CRLF)格式,请求体末尾必须添加结束标记--{自定义boundary字符串}--
  • 手动配置请求头,禁止FileMaker自动覆盖Content-Type字段:
    将Content-Type请求头值设置为multipart/form-data; boundary={你自定义的boundary字符串},boundary建议使用无特殊含义的随机字符串,避免和请求体内容冲突
  • 校验规则:
    • 所有Content-Disposition头必须携带name属性,文件分段必须额外携带filename属性
    • 分段头和分段内容之间必须保留一个空行
    • 附件二进制内容不要做额外的文本编码转换(如转UTF-8带BOM格式),避免破坏分段结构和文件内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 04:55:18