當前位置:才華齋>計算機>php語言>

php readfile下載大檔案失敗的解決方法

php語言 閱讀(1.15W)

專案遇見了一個錯誤。下載報表時資料量太大,檔案達到了300多M,這時出現了“頁面未找到”的錯誤,開始以為是服務器檔案不存在,後來看了下確實有的,然後嘗試了多次,發現小檔案是可以下載的。於是確定是檔案太大的原因。以下是小編為大家搜尋整理的'php readfile下載大檔案失敗的解決方法,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

php readfile下載大檔案失敗的解決方法

  具體如下:

大檔案有200多M,只下載了200K就提示下載完成,且不報錯。

原因是PHP記憶體有限制,需要改為按塊下載,就是把大檔案切塊後逐塊下載。

?

123456789101112131415161718192021if (file_exists($file)){if (FALSE!== ($handler = fopen($file, 'r'))){header('Content-Description: File Transfer');header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename='.basename($file));header('Content-Transfer-Encoding: chunked'); //changed to chunkedheader('Expires: 0');header('Cache-Control: must-revalidate, post-check=0, pre-check=0');header('Pragma: public');//header('Content-Length: ' . filesize($file)); //Remove//Send the content in chunkswhile(false !== ($chunk = fread($handler,4096))){echo $chunk;}}exit;}echo " Content error

The file does not exist!

";

PHP實現遠端下載檔案到本地

PHP檔案下載類

php做下載檔案的實現程式碼及檔名中亂碼解決方法

php使瀏覽器直接下載pdf檔案的方法

php實現的支援斷點續傳的檔案下載類

php中強制下載檔案的程式碼(解決了IE下中文檔名亂碼問題)b