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

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

    震惊

    震惊

编辑推荐
使用NSURLConnection实现大文件断点下载 由于是实现大文件的断点下载,不是下载一般图片什么的.在设
$file_name="a.txt"; //Windows PATH; $file_path=dirname(__FILE__).'\\' . $file_name; //下载文
完整项目下载: http://files.cnblogs.com/qldsrx/FilesManager.rar   之前发过片段的内容,都没
完整项目下载: http://files.cnblogs.com/qldsrx/FilesManager.rar   之前发过片段的内容,都没
在php中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,
众所周知php对http协议的依赖特别强,像java或者asp.net在某些情况下可以不依赖http例如asp.net的wi
瀑布流效果可谓是2012年互联网上非常流行的一种效果,像蘑菇街,拖拉网这种网站更是通篇的瀑布流。
在TCP下进行大文件传输不象小文件那样直接打包个BUFFER发送出去,因为文件比较大所以不可能把文件读
SWFUpload V2.2.0 说明中文文档地址: http://leeon.me/upload/other/swfupload.html#statsobject
原帖地址:http://www.cnblogs.com/smark/p/3143597.html 在TCP下进行大文件传输不象小文件那样直接
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号