我正在尝试从响应中保存pdf文件。这里是 API documentatin
Creates a shipping label for a given order. The labelData field returned in the response is a base64 encoded PDF value. Simply decode and save the output as a PDF file to retrieve a printable label
。
这是我保存pdf文件的代码。
$response = json_decode(curl_exec($ch));
$data = base64_decode($response->labelData);
header('Content-Type: application/pdf');
//echo $data;
$path = 'E:/newly_created_file'.time().'.pdf';
file_put_contents($path,$data);
当我在浏览器中echo $data
时,它会显示响应,如
%PDF-1.4 %���� 2 0 obj <>stream x�+�r �26S0�4SI�r � �*T0T0BC]#=]ccC=#��\��4C�|�@.GF� endstream endobj 4 0 obj <>>>/Contents 2 0 R/Parent
当我保存数据时,它会生成一个无法打开的空pdf文件。
这里有什么问题?
更新:Respose具有附加图像中显示的正确数据
答案 0 :(得分:0)
只有在浏览器中显示pdf文件时才需要此标题,而不是存储在文件中。
header('Content-Type: application/pdf');
删除它。
答案 1 :(得分:0)
很难找到有关API数据信息的问题。 执行代码:
$response = json_decode(curl_exec($ch));
echo $response->labelData;
exit;
并在此处发布结果,因此我们可以尝试找出问题所在。