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

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

    震惊

    震惊

编辑推荐
完整项目下载: http://files.cnblogs.com/qldsrx/FilesManager.rar   之前发过片段的内容,都没
完整项目下载: http://files.cnblogs.com/qldsrx/FilesManager.rar   之前发过片段的内容,都没
使用NSURLConnection实现大文件断点下载 由于是实现大文件的断点下载,不是下载一般图片什么的.在设
通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来下载,相信这
在php中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,
首先声明,文章思路源于MSDN中徐长龙老师的课程整理,加上自己的一些心得体会,先总结如下: 在应对
此篇文章主要是基于http协议应用于大文件传输中的应用,现在我们先解析下wcf中编码器的定义,编码器
1 2 3 4 5 <?php header( "Content-Type: application/force-download" ); header( "Content-Dis
$file_name="a.txt"; //Windows PATH; $file_path=dirname(__FILE__).'\\' . $file_name; //下载文
客户端从服务端下载文件的流程分析: 浏览器发送一个请求,请求访问服务器中的某个网页(如:down.p
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号