欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php readfile下载大文件失败的解决方法

程序员文章站 2024-03-12 17:34:14
本文实例讲述了php readfile下载大文件失败的解决方法。分享给大家供大家参考,具体如下: 大文件有200多m,只下载了200k就提示下载完成,且不报错。 原因是...

本文实例讲述了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>";

更多关于php相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《php网络编程技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家php程序设计有所帮助。