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 相关文章推荐
《PHP编程最快明白》第六讲:Mysql数据库操作
Nov 01 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
May 07 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 PHP
使用PHP备份MYSQL数据的多种方法
Jan 15 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
php 浮点数比较方法详解
May 05 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 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安全编程之加密功能
2006/10/09 PHP
一篇不错的PHP基础学习笔记
2007/03/18 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
2014/01/15 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
2015/01/04 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
JS backgroundImage控制
2009/05/19 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
Python中zfill()方法的使用教程
2015/05/20 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
python3.5绘制随机漫步图
2018/08/27 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
满月酒答谢词
2014/01/14 职场文书
教师节商场活动方案
2014/02/13 职场文书
校车安全责任书
2014/08/25 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
亮剑观后感300字
2015/06/05 职场文书
导游词之四川武侯祠
2019/10/21 职场文书