レスポンスからPDFファイルを保存しようとしています。ここには、 API documentatinPHP:Base64でエンコードされたPDFファイルを保存する
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);
Iブラウザで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ファイルを生成します。
ここで何が間違っていますか?
UPDATE:Resposeは、このヘッダは、ブラウザでPDFファイルを表示した場合にのみ、ファイルに保存していない必要が添付された画像でshowよう
削除されましたが、まだ開いていない空のPDFが表示されています。 – Shahzeb
すべてのステップをステップごとにデバッグします。あなたは 'curl_exec($ ch)'、次の 'json_decode(curl_exec($ ch))'から次の '$ response-> labelData'を' base64_decode($ response-> labelData) 'に適切な値を取得していますか?あなたはブラウザでPDFファイルを表示できますか? –
はい、添付の画像に示されているように結果は正しいです(私は質問を更新しました)。また、ブラウザで開くことができません – Shahzeb