当前位置:首页 > 开发 > 互联网 > 正文

PHP大文件下载解决

发表于: 2012-06-08   作者:feitu_jeff   来源:转载   浏览:
摘要: 附件中有两个下载类,直接拿来可以用,都支持断点续传、速度限制,但是在linux都不能下载超过2G文件(都使用了fopen,但由于文件超过2G,无法返回文件句柄) ,不过在windows上测试超过2G的可以下载。 php下载类.zip (其中有个类需要BC高精函数库支持,linux上yum -y install php-bcmath)   超过2G解决方案: 一种直接将2

附件中有两个下载类,直接拿来可以用,都支持断点续传、速度限制,但是在linux都不能下载超过2G文件(都使用了fopen,但由于文件超过2G,无法返回文件句柄) ,不过在windows上测试超过2G的可以下载。

php下载类.zip (其中有个类需要BC高精函数库支持,linux上yum -y install php-bcmath)

 

超过2G解决方案:

一种直接将2G文件放到服务器目录下,通过url直接访问文件下载。 这个。。。不管怎么样也解决了问题

另一种通过apache拓展库mod_sendfile进行下载

代码片段如下:

 

 

$file = "XXX.zip";
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header("X-Sendfile: $file");

 

 关键代码为header("X-Sendfile: $file");

 

 

下面说下xsendfile模块安装,网上已经有,我稍微整理下

 

1. 获取mod_xsendfile文件( https://tn123.org/mod_xsendfile/);
2. 安装apxs,只要安装httpd-devel就可以
    yum install httpd-devel
3. 安装xsendfile模块 apxs -cia mod_xsendfile.c
4. 向httpd.conf中增加配置,/tmp 修改为文件存放目录
 XSendFilePath /tmp
   
5. 目录文件中增加.htaccess,文件内容为
<Files XXXXX.php>
XSendFile on 
</Files>


 

PHP大文件下载解决

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

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