首页 > php教程 > php手册 > 正文

PHP教程:再谈在线下载之大文件下载

php中文网
发布: 2016-06-06 20:10:03
原创
1640人浏览过

大前天吧,写了一篇文章是关于PHP在线下载的一个实例(文章:《PHP教程:在线下载文件》),并且我提供了一个批量下载的一个方法。然后呢,第二天就有个叫做Aivier的网友从天而降,询问我如果是大文件时怎么办。我一时也想到没有考虑大文件下载的情况:正如这

大前天吧,写了一篇文章是关于php在线下载的一个实例(文章:《php教程:在线下载文件》),并且我提供了一个批量下载的一个方法。然后呢,第二天就有个叫做aivier的网友从天而降,询问我如果是大文件时怎么办。我一时也想到没有考虑大文件下载的情况:正如这位网友所说的,大文件确实是需要分段下载哦。所以呢,我觉得有必要再来说说在线下载那些事,顺便给出这位网友一个答案哦。

函数

function?down($file_dir,$file_name){ ??
//利用函数清理多余的空格?并得到新的路径 ??
$file_dir?=?chop($file_dir); ??
//检查路径是否真心有 ??
if($file_dir?!=?''){ ??
$file_path?=?$file_dir; ??
//检查路径里面最后是否有了/ ??
if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir))!='/') ??
$file_path?.=?'/'; ??
$file_path?.=?$file_name; ??
}else{ ??
$file_path?=?$file_name; ??
}? ??
//利用完整的路径?检查文件是不是存在??? ??
if(!file_exists($file_path)){ ??
echo?'亲,没有你要找的文件呢'; ??
return?false; ??
} ??
//获取文件的大小 ??
$file_size?=?filesize($file_path); ??
//设置表头 ??
header("Content-type:?application/octet-stream"); ??
header("Accept-Ranges:?bytes"); ??
header("Accept-Length:?$file_size"); ??
header("Content-Disposition:?attachment;?filename=".$file_name); ??
//以只读状态打开文件?并获取其中的流数据 ??
$fp?=?fopen($file_path,"r"); ??
//分段大小 ??
$buffer_size?=?1024; ??
//已经传输的大小 ??
$cur_pos?=?0; ??
while(!feof($fp)&&$file_size-$cur_pos>$buffer_size){ ??
//分成段存储数据 ??
$buffer?=?fread($fp,$buffer_size); ??
echo?$buffer; ??
$cur_pos?+=?$buffer_size; ??
} ??
$buffer?=?fread($fp,$file_size-$cur_pos); ??
echo?$buffer; ??
fclose($fp); ??
return?true; ??
}??
登录后复制
我想,怎么批量就不用再说了吧。其实呢,这个函数也并不算复杂的,而且我自己做了一点注释,相信有基础的你可以看得出来哦。如果真心不知道怎么来个批量,那可以参考一下前面提到的那篇文章哦!!

声明: 本文采用 BY-NC-SA 协议进行授权 | IT路人
转载请注明转自《PHP教程:再谈在线下载之大文件下载》

LSV蓝海豚PHP购物导航程序
LSV蓝海豚PHP购物导航程序

蓝海豚PHP购物导航程序(以下简称 LSV!)是蓝海豚项目组随着Lht团购导航软件之后推出的又一套通用的PHP开源购物导航软件系统。作为国内最大的电子商务导航软件及服务提供商,蓝海豚旗下的LSV产品,无论在功能、稳定性、负载能力、安全保障等方面都居于国内外同类产品领先地位,是目前全国成熟度最高、覆盖率最大的电子商务购物软件系统程序。使用蓝海豚购物导航程序建站有以下四大优势:  1:技术领先,程序稳

LSV蓝海豚PHP购物导航程序 4
查看详情 LSV蓝海豚PHP购物导航程序
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号