- 相關(guān)推薦
php readfile下載大文件失敗的解決方法
項(xiàng)目遇見了一個錯誤。下載報表時數(shù)據(jù)量太大,文件達(dá)到了300多M,這時出現(xiàn)了“頁面未找到”的錯誤,開始以為是服務(wù)器文件不存在,后來看了下確實(shí)有的,然后嘗試了多次,發(fā)現(xiàn)小文件是可以下載的。于是確定是文件太大的原因。以下是小編為大家搜索整理的php readfile下載大文件失敗的解決方法,希望能給大家?guī)韼椭?更多精彩內(nèi)容請及時關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
具體如下:
大文件有200多M,只下載了200K就提示下載完成,且不報錯。
原因是PHP內(nèi)存有限制,需要改為按塊下載,就是把大文件切塊后逐塊下載。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
if ( 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 chunked header( '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 chunks while (false !== ( $chunk = fread ( $handler ,4096))) { echo $chunk ; } } exit ; } echo "
|
PHP實(shí)現(xiàn)遠(yuǎn)程下載文件到本地
PHP文件下載類
php做下載文件的實(shí)現(xiàn)代碼及文件名中亂碼解決方法
php使瀏覽器直接下載pdf文件的方法
php實(shí)現(xiàn)的支持?jǐn)帱c(diǎn)續(xù)傳的文件下載類
php中強(qiáng)制下載文件的代碼(解決了IE下中文文件名亂碼問題)b
【php readfile下載大文件失敗的解決方法】相關(guān)文章:
PHP快速讀取大文件的例子10-24
PHP中讀取大文件實(shí)現(xiàn)方法詳解09-23
php下載代碼怎么寫07-13
php使用file-get-contents讀取大文件的方法07-12
PHP浮點(diǎn)型的數(shù)據(jù)的解決方法09-29
PHP解決session死鎖的解決方法09-17
關(guān)于php中文亂碼的解決方法07-09