调用Adobe Sign API /transientDocuments接口报NO_FILE_CONTENT错误求助
解决Adobe transientDocuments接口NO_FILE_CONTENT错误
我之前对接Adobe这个接口时也碰到过一模一样的问题,你的Guzzle请求配置里有几个细节需要调整,试试下面的方案:
移除手动设置的请求头
Guzzle在处理multipart类型的请求时,会自动生成正确的Content-Type和Content-Transfer-Encoding头,手动添加这些头反而会干扰接口对文件内容的识别,直接删掉headers这部分配置就好。确认字段名是否匹配接口要求
Adobe的transientDocuments接口通常期望文件对应的字段名为file而非test,你可以核对下官方文档的参数要求,把name字段的值改成file。确保文件路径和权限正确
相对路径有时候会因为执行环境的问题导致文件找不到,建议用realpath()获取文件的绝对路径,同时要确保PHP进程对这个文件有可读权限。
修改后的代码示例:
$client->request('POST', 'transientDocuments', [ 'multipart' => [ [ 'name' => 'file', 'contents' => fopen(realpath('pdfs/test.pdf'), 'r'), 'filename' => 'file.pdf' ], ] ]);
如果还是有问题,可以开启Guzzle的调试模式查看实际发送的请求内容,确认文件是否被正确包含:
$client->request('POST', 'transientDocuments', [ 'multipart' => [/* 你的配置 */], 'debug' => true // 开启调试,会输出请求的详细信息 ]);
内容的提问来源于stack exchange,提问作者Kyle
相关产品推荐
相关产品推荐

