2012-10-10 3 views
1
<?php 
header('Content-disposition: attachment; filename=Booking.pdf'); 
header('Content-type: application/pdf'); 
readfile('http://mysite.com/Booking.pdf'); 
?> 

왜 Booking.pdf 파일이 비어 있습니까?pdf php 다운로드가 빈 파일을 생성합니다.

mac 및 windows 모두 다음과 같이 말합니다. "Booking.pdf"파일이 비어있어 열 수 없습니다.

Google 및 stackoverflow를 확인했는데 관련 정보를 찾을 수 없습니다. 이전에이 경험이있는 사람이 있습니까?

ps :이 포럼 게시물을 찾았습니다 : '온라인 문제는 다소 논란의 여지가 있지만 일반적으로 이진이 아닌 FTP의 ASCII 모드로 PDF를 서버에로드하기 때문입니다. 그러면 파일이 손상됩니다. 바이너리 전송 '을 켜야합니다. 그러나 iframe에 동일한 pdf 파일을 표시 할 수 있고 공백/비어 있지 않기 때문에이 경우에는 사실이 아닙니다.

+2

당신의 PHP 파일 호출, 예를 들어,의 URL을 허용 설치 하는가

readfile('http://mysite.com/Booking.pdf'); 

readfile(__DIR__ . '/Booking.pdf'); 

로 변경해야 allow_url_fopen이 활성화되어 있습니까? 아스키 모드 ftp와는 아무런 관련이 없습니다. 코드가 작동 중이면 여전히 손상된 PDF 내용을 얻을 수 있습니다. 손상된 ftp 업로드는 여전히 길이가 0이 아닌 파일을 생성합니다. –

+0

나는 당신이 맞다고 생각하고 다른 곳에서 읽으면 내 public_html에서 사용자 정의 (allow_url_fopen = on) ini.php를 작성해야하지만 분명히 심각한 보안 위험이 있습니다 ... –

답변

4

당신은

$file = __DIR__ . '/test.pdf' ; 
header('Content-disposition: attachment; filename=Booking.pdf'); 
header('Content-type: application/pdf'); 
header("Content-length: ".filesize($file)); 
readfile($file); 
+1

가끔은 너무 간과 해지기도합니다! –

관련 문제