php readfile 下载大文件失败
大文件有200多M,只下载了200K就提示下载完成,且不报错。
原因是PHP内存有限制,需要改为按块下载,就是把大文件切块后逐块下载。
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>";
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。