当前位置:首页 > 资讯 > 热门博客 > 正文

PHP实现大文件的下载

发表于: 2010-06-04   作者:wenjianwzz   来源:转载   浏览:
摘要:   使用PHP文件实现文件下载的时候,最方便的莫过于readfile函数了,但是如果下载对象是一个大文件,由于php默认情况下都限制了最大内存占用,所以使用readfile根本不行。解决这个问题,我的思路是使用fseek和ftell,读一段,关闭文件,再打开,然后再定位到原来位置,继续读。代码如下。  $ptr=0  while (true)  {       $fd = f

   使用PHP文件实现文件下载的时候,最方便的莫过于readfile函数了,但是如果下载对象是一个大文件,由于php默认情况下都限制了最大内存占用,所以使用readfile根本不行。解决这个问题,我的思路是使用fseek和ftell,读一段,关闭文件,再打开,然后再定位到原来位置,继续读。代码如下。

 

  
  
  
  
  1. $ptr=0  
  2. while (true)  
  3. {  
  4.      $fd = fopen ($path"rb");  
  5.      fseek($fd$ptr);  
  6.      echo fread ($fd, 1024*1024);  
  7.      if(feof($fd))  
  8.       {  
  9.            fclose($fd);  
  10.            break;  
  11.        }  
  12.        $ptr=ftell($fd);  
  13.        fclose ($fd);  

  目前只想到这个方法,若哪位仁兄有更好的办法,望不吝赐教。

补充一点就是这样做也不能下载太大的文件,不是程序的原因,而是php配置文件里还有一个最大执行时间,一般为30秒,改大就好。

PHP实现大文件的下载

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号