2013-04-09 1 views
5

환영합니다PHP + PDF, 다운로드 PDF를 말림을 사용하여 저장하는 방법은 무엇입니까?

다운로드 한 PDF를 페이지에 저장하는 데 약간의 문제가 있습니다. PDF를 다운로드하려면 나는 컬을 사용

이제
$CurlConnect = curl_init(); 
curl_setopt($CurlConnect, CURLOPT_URL, 'http://website.com/invoices/download/1'); 
curl_setopt($CurlConnect, CURLOPT_POST, 1); 
curl_setopt($CurlConnect, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($CurlConnect, CURLOPT_POSTFIELDS, $request); 
curl_setopt($CurlConnect, CURLOPT_USERPWD, $login.':'.$password); 
$Result = curl_exec($CurlConnect); 

에서 $가 (문자열) 결과 나는 모든 PDF 파일 내용이있다. 그리고 이제 내 문제가 시작됩니다. 다운로드 한 PDF를 저장하고 싶습니다.

header('Cache-Control: public'); 
header('Content-type: application/pdf'); 
header('Content-Disposition: attachment; filename="new.pdf"'); 
header('Content-Length: '.filesize($Result)); 
readfile($Result); 

불행히도 새 PDF 파일을 저장하거나 열면 빈 문서가 나타납니다. 아마도 문제의 마지막 라인이다 :

header('Content-Length: '.filesize($Result)); 
readfile($Result); 

불행하게도, 나는 당신의 도움을 요청 ... 그들이 작동하도록 변경 해야할지 모르겠어. 감사합니다

+0

왜 당신은 내가 당신의 코드에서 일부 오류 발생하는이 있다고 생각 –

+0

을 http://php.net/manual/en/function.pdf-save.php을 사용하지 말아. try-catch 블록에 코드를 래핑하고 디버깅 단계를 추가하십시오. – Khaleel

+1

필자는 테스트하지는 않았지만'filesize()'와'readfile()'에 대해서는 문자열 대신 내용이 담긴 실제 파일 경로가 필요하다고 생각합니다. – enenen

답변

10

filesizereadfile 모두 파일을 인수로 허용합니다. 파일 대신 문자열을 제공하고 있습니다.

시도해보십시오.

$CurlConnect = curl_init(); 
curl_setopt($CurlConnect, CURLOPT_URL, 'http://website.com/invoices/download/1'); 
curl_setopt($CurlConnect, CURLOPT_POST, 1); 
curl_setopt($CurlConnect, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($CurlConnect, CURLOPT_POSTFIELDS, $request); 
curl_setopt($CurlConnect, CURLOPT_USERPWD, $login.':'.$password); 
$Result = curl_exec($CurlConnect); 

header('Cache-Control: public'); 
header('Content-type: application/pdf'); 
header('Content-Disposition: attachment; filename="new.pdf"'); 
header('Content-Length: '.strlen($Result)); 
echo $Result; 
+0

네, 맞습니다 :) – Kuba

0

어쩌면 : 이상

// ... 
$Result = curl_exec($CurlConnect); 
$file = 'file.pdf'; 
$fileName = 'fileName.pdf'; 
file_put_contents($file, $Result); 

과 :

header('Content-type: application/pdf'); 
header('Content-Disposition: inline; filename="' . $filename . '"'); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: ' . filesize($file)); 
header('Accept-Ranges: bytes'); 

readfile($file); 

을 내가 도움 바랍니다!

관련 문제