2014-04-07 4 views
0

저는 zip 아카이브를 사용하여 zip 파일을 생성하고 사용자가 다운로드 할 수 있도록 브라우저로 보냅니다.파일 다운로드 PHP를 사용하여 11MB로 다운로드가 중지됩니다.

$archive_file_name = "/var/www/html/administrator/1396413991.zip"; 
header("Content-type: application/zip"); 
header("Content-Disposition: attachment; filename=test.zip"); 
header("Expires: on, 01 Jan 1970 00:00:00 GMT"); 
header("Pragma: no-cache"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
readfile("$archive_file_name"); 
exit; 

내 다운로드가 11MB에서 중지되고 11MB 이상의 파일을 다운로드 할 수 없습니다. 무엇이 잘못되었거나 잘못 되었습니까?

의견을 보내 주시면 감사하겠습니다. 감사.

+1

가능한 중복 : http://stackoverflow.com/questions/2946791/php-readfile-and-large-downloads –

+1

아마 웹 액세스처럼 그 모양 때문에 단순히 가리없는 이유 /를 리디렉션 zip 파일을 만들고 웹 서버에 제공하게 하시겠습니까? PHP로 파일을 검색하는 것이 가장 느립니다. – AD7six

+0

구현 세부 사항으로 인해 사용자가 리디렉션하는 대신 사용자를 리디렉션 할 수 있도록해야합니다. –

답변

1

에 php.ini의 설정을 변경할 수 있습니다 될 수 있습니다.

Note: 

Passthru didn't work for me for files greater than about 5Mb. Just adding "ob_end_clean()", all works fine now, including > 50Mb files. 

$ToProtectedFile=$pathUnder.$filename 
$handle = @fopen($ToProtectedFile, "rb"); 

@header("Cache-Control: no-cache, must-revalidate"); 
@header("Pragma: no-cache"); //keeps ie happy 
@header("Content-Disposition: attachment; filename= ".$NomFichier); 
@header("Content-type: application/octet-stream"); 
@header("Content-Length: ".$SizeOfFile); 
@header('Content-Transfer-Encoding: binary'); 

ob_end_clean();//required here or large files will not work 
@fpassthru($handle);//works fine now 
+0

Blizz에게 감사의 말을 전합니다. 바이너리 파일에 사용되는 문서에 지정되어 있습니다. 압축 파일 용으로 사용할 수 있습니까? –

+0

안녕하세요, 저는 fpassthru로 시도했지만 같은 문제에 직면했습니다. –

+0

흠, 이상하게 보입니다. afaik fpassthru는 파일을 중계하기 위해 많은 메모리를 사용하지 않습니다. 정확한 오류가 무엇인지 확인하기 위해 오류 로그를 확인 했습니까? 그 안에 몇 가지 표시가 있어야합니까? – Blizz

0

당신이 시도하고, 그것은이 상황을 위해 특별히 만들어진 것 내가 대신 fpassthru을 사용하여 조언을 것

memory_limit = 128M 
post_max_size = 300M 
+0

iam이 잘못되지 않았다면 이것은 더 무거운 파일을위한 서버가 아닙니다. –

관련 문제