糯米文學吧

位置:首頁 > 計算機 > php語言

php readfile下載大文件失敗的解決方法

php語言1.11W

項目遇見了一個錯誤。下載報表時數據量太大,文件達到了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

標籤:PHP readfile 文件