php readfile下載大文件失敗的解決方法
本文實(shí)例講述了php readfile下載大文件失敗的解決方法。分享給大家供大家參考,具體如下:
大文件有200多M,只下載了200K就提示下載完成,且不報(bào)錯(cuò)。
原因是PHP內(nèi)存有限制,需要改為按塊下載,就是把大文件切塊后逐塊下載。
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 "<h1>Content error</h1><p>The file does not exist!</p>";
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP實(shí)現(xiàn)數(shù)組根據(jù)某個(gè)字段進(jìn)行水平合并,橫向合并案例分析
這篇文章主要介紹了PHP實(shí)現(xiàn)數(shù)組根據(jù)某個(gè)字段進(jìn)行水平合并,橫向合并,結(jié)合具體案例形式分析了php數(shù)組遍歷、合并等相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
PHP開發(fā)工具ZendStudio下Xdebug工具使用說明詳解
我使用的是XAMPP的集成開發(fā)平臺(tái)環(huán)境。里面已經(jīng)預(yù)設(shè)了Xdebug的調(diào)試工具,只需要自己改下配置的就可以了2013-11-11
一個(gè)顯示某段時(shí)間內(nèi)每個(gè)月的方法 返回由這些月份組成的數(shù)組
一個(gè)顯示某段時(shí)間內(nèi)每個(gè)月的方法 返回由這些月份組成的數(shù)組,需要的朋友可以參考下2012-05-05
gearman中任務(wù)的優(yōu)先級(jí)和返回狀態(tài)實(shí)例分析
這篇文章主要介紹了gearman中任務(wù)的優(yōu)先級(jí)和返回狀態(tài),結(jié)合實(shí)例形式分析了gearman任務(wù)的優(yōu)先級(jí)以及獲取返回狀態(tài)相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
php實(shí)現(xiàn)用已經(jīng)過去多長時(shí)間的方式顯示時(shí)間
這篇文章主要介紹了php實(shí)現(xiàn)用已經(jīng)過去多長時(shí)間的方式顯示時(shí)間,可實(shí)現(xiàn)相對(duì)時(shí)間的顯示效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-06-06
PHP簡單實(shí)現(xiàn)數(shù)字分頁功能示例
這篇文章主要介紹了PHP簡單實(shí)現(xiàn)數(shù)字分頁功能,結(jié)合實(shí)例形式分析了php數(shù)字分頁相關(guān)的數(shù)學(xué)運(yùn)算與字符串操作相關(guān)技巧,需要的朋友可以參考下2016-08-08

