PHP简单实现断点续传下载的方法


Posted in PHP onSeptember 25, 2015

本文实例讲述了PHP实现断点续传下载的方法。分享给大家供大家参考。具体如下:

$fname = 'http://XXXX/MMLDZG.mp3';
$fp = fopen($fname,'rb');
$fsize = filesize($fname);
if (isset($_SERVER['HTTP_RANGE']) && ($_SERVER['HTTP_RANGE'] != "") && preg_match("/^bytes=([0-9]+)-$/i", $_SERVER['HTTP_RANGE'], $match) && ($match[1] < $fsize)) {   $start = $match[1]; } else {   $start = 0; } @header("Cache-control: public"); @header("Pragma: public"); if ($star--> 0) {
  fseek($fp, $start);
  Header("HTTP/1.1 206 Partial Content");
  Header("Content-Length: " . ($fsize - $start));
  Header("Content-Ranges: bytes" . $start . "-" . ($fsize - 1) . "/" . $fsize);
} else {
  header("Content-Length: $fsize");
  Header("Accept-Ranges: bytes");
}
@header("Content-Type: application/octet-stream");
@header("Content-Disposition: attachment;filename=mmdld.mp3");
fpassthru($fp);
fpassthru();//函数输出文件指针处的所有剩余数据。

该函数将给定的文件指针从当前的位置读取到 EOF,并把结果写到输出缓冲区。

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
聊天室php&amp;mysql(四)
Oct 09 PHP
php与paypal整合方法
Nov 28 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
php中url函数介绍及使用示例
Feb 13 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
ThinkPHP实现分页功能
Apr 28 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
分享3个php获取日历的函数
Sep 25 #PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 #PHP
常见PHP数据库解决方案分析介绍
Sep 24 #PHP
又十个超级有用的PHP代码片段
Sep 24 #PHP
PHP易混淆知识整理笔记
Sep 24 #PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 #PHP
PHP生成条形码大揭秘
Sep 24 #PHP
You might like
?繁体转换的class
2006/10/09 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
python3 对list中每个元素进行处理的方法
2018/06/29 Python
python查看模块安装位置的方法
2018/10/16 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
RetroStage德国:复古服装
2019/02/03 全球购物
银行类自荐信
2014/02/04 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
幼儿园老师寄语
2014/04/03 职场文书
个人借条范本
2015/05/25 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
学校运动会开幕词
2016/03/03 职场文书
python中数组和列表的简单实例
2022/03/25 Python
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers