PHP下载文件的函数实例代码


Posted in PHP onMay 18, 2016

通过函数完成下载文件的PHP功能代码

function download($url, $filename) { 
// 获得文件大小, 防止超过2G的文件, 用sprintf来读 
$filesize = sprintf ( "%u", filesize ( $url ) ); 
if (! $filesize) { 
return; 
} 
header ( "Content-type:application/octet-stream\n" ); //application/octet-stream 
header ( "Content-type:unknown/unknown;" ); 
header ( "Content-disposition: attachment; filename=\"" . $filename . "\"" ); 
header ( 'Content-transfer-encoding: binary' ); 
if ($range = getenv ( 'HTTP_RANGE' )) { // 当有偏移量的时候,采用206的断点续传头 
$range = explode ( '=', $range ); 
$range = $range [1]; 
header ( "HTTP/1.1 206 Partial Content" ); 
header ( "Date: " . gmdate ( "D, d M Y H:i:s" ) . " GMT" ); 
header ( "Last-Modified: " . gmdate ( "D, d M Y H:i:s", filemtime ( $url ) ) . " GMT" ); 
header ( "Accept-Ranges: bytes" ); 
header ( "Content-Length:" . ($filesize - $range) ); 
header ( "Content-Range: bytes " . $range . ($filesize - 1) . "/" . $filesize ); 
header ( "Connection: close" . "\n\n" ); 
else { 
header ( "Content-Length:" . $filesize . "\n\n" ); 
$range = 0; } 
loadFile ( $url );}
function loadFile($filename, $retbytes = true) { 
$buffer = ''; $cnt = 0; $handle = fopen ( $filename, 'rb' ); 
if ($handle === false) { return false; 
} while ( ! feof ( $handle ) ) { 
$buffer = fread ( $handle, 1024 * 1024 ); 
echo $buffer; 
ob_flush (); 
flush (); 
if ($retbytes) { 
$cnt += strlen ( $buffer ); 
} 
} 
$status = fclose ( $handle ); 
if ($retbytes && $status) { 
return $cnt; // return num. bytes delivered like readfile() does. 
} 
return $status;}

输入2个参数即可完成下载 download($url, $filename)

以上所述是小编给大家介绍的PHP下载文件的函数实例代码的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
如何在WIN2K下安装PHP4.04
Oct 09 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 PHP
php中随机显示图片的函数代码
Jun 23 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
Jan 11 PHP
yii操作cookie实例简介
Jul 09 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
php实现excel中rank函数功能的方法
Jan 20 PHP
举例讲解PHP面对对象编程的多态
Aug 12 PHP
php版微信公众平台接口开发之智能回复开发教程
Sep 22 PHP
php 获取xml接口数据的处理方法
May 31 PHP
PHP扩展框架之Yaf框架的安装与使用
May 18 #PHP
CI框架的安全性分析
May 18 #PHP
PHP的swoole扩展安装方法详细教程
May 18 #PHP
CI框架支持$_GET的两种实现方法
May 18 #PHP
CI框架中$this->load->library()用法分析
May 18 #PHP
CI框架数据库查询之join用法分析
May 18 #PHP
CI框架简单邮件发送类实例
May 18 #PHP
You might like
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
PHP 实现缩略图
2021/03/09 PHP
javascript 面向对象 function类
2010/05/13 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
Vue父子之间值传递的实例教程
2020/07/02 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Python2.x与Python3.x的区别
2016/01/14 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
python win32 简单操作方法
2017/05/25 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
python清空命令行方式
2020/01/13 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
用python制作个音乐下载器
2021/01/30 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
护理学毕业生自荐信
2013/10/02 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
师德师风演讲稿
2014/05/05 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
工作感言一句话
2015/08/01 职场文书
汉语拼音教学反思
2016/02/22 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python