php readfile下载大文件失败的解决方法
本文实例讲述了phpreadfile下载大文件失败的解决方法。分享给大家供大家参考,具体如下:
大文件有200多M,只下载了200K就提示下载完成,且不报错。
原因是PHP内存有限制,需要改为按块下载,就是把大文件切块后逐块下载。
if(file_exists($file)) { if(FALSE!==($handler=fopen($file,'r'))) { header('Content-Description:FileTransfer'); header('Content-Type:application/octet-stream'); header('Content-Disposition:attachment;filename='.basename($file)); header('Content-Transfer-Encoding:chunked');//changedtochunked header('Expires:0'); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Pragma:public'); //header('Content-Length:'.filesize($file));//Remove //Sendthecontentinchunks while(false!==($chunk=fread($handler,4096))) { echo$chunk; } } exit; } echo"Contenterror
Thefiledoesnotexist!
";
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP网络编程技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。