2017-10-09 30 views
0

レスポンスから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よう

enter image description here

答えて

0

を正しいデータを持っています。

header('Content-Type: application/pdf'); 

削除します。

+0

削除されましたが、まだ開いていない空のPDFが表示されています。 – Shahzeb

+0

すべてのステップをステップごとにデバッグします。あなたは 'curl_exec($ ch)'、次の 'json_decode(curl_exec($ ch))'から次の '$ response-> labelData'を' base64_decode($ response-> labelData) 'に適切な値を取得していますか?あなたはブラウザでPDFファイルを表示できますか? –

+0

はい、添付の画像に示されているように結果は正しいです(私は質問を更新しました)。また、ブラウザで開くことができません – Shahzeb

0

APIのデータに関する情報がなく、問題が見つからない。 コード実行します。ここで

$response = json_decode(curl_exec($ch)); 
echo $response->labelData; 
exit; 

とポストの結果を、私たちは間違っているものを見つけることを試みることができます。

+0

出力 - > labelDataが添付されたスナップショットに表示され、ドキュメントごとにpdfがエンコードされています。 – Shahzeb

関連する問題