2017-10-09 9 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 파일을 저장하기위한 코드입니다. 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 파일을 생성합니다 같은 응답을 보여줍니다

 $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); 

.

무엇이 잘못 되었나요?

업데이트 : Respose는 파일에 저장하지, 브라우저에서 PDF 파일을 표시 할 때

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