php控制文件下载速度的方法


Posted in PHP onMarch 24, 2015

本文实例讲述了php控制文件下载速度的方法。分享给大家供大家参考。具体实现方法如下:

<?php
 /*
 * set here a limit of downloading rate (e.g. 10.20 Kb/s)
 */
 $download_rate = 10.20;
 $download_file = 'download-file.zip'; 
 $target_file = 'target-file.zip';
 if(file_exists($download_file)){
  /* headers */
  header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT');
  header('Cache-control: private');
  header('Content-Type: application/octet-stream');
  header('Content-Length: '.filesize($download_file));
  header('Content-Disposition: filename='.$target_file);
  /* flush content */
  flush();
  /* open file */
  $fh = @fopen($download_file, 'r');
  while(!feof($fh)){
   /* send only current part of the file to browser */
   print fread($fh, round($download_rate * 1024));
   /* flush the content to the browser */
   flush();
   /* sleep for 1 sec */
   sleep(1);
  }
  /* close file */
  @fclose($fh);
 }else{
  die('Fatal error: the '.$download_file.' file does not exist!');
 }
?>

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

PHP 相关文章推荐
最小化数据传输――在客户端存储数据
Oct 09 PHP
php二分法在IP地址查询中的应用
Aug 12 PHP
Ajax+PHP快速上手及简单应用说明
Jul 24 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
Oct 28 PHP
Laravel实现表单提交
May 07 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
PHP实现字符串的全排列详解
Apr 24 PHP
使用 PHPStorm 开发 Laravel
Mar 24 #PHP
php实现的通用图片处理类
Mar 24 #PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 #PHP
PHP实现CSV文件的导入和导出类
Mar 24 #PHP
php自定义urlencode,urldecode函数实例
Mar 24 #PHP
PHP数组相关函数汇总
Mar 24 #PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 #PHP
You might like
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
MySql中正则表达式的使用方法描述
2008/07/30 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
网页javascript精华代码集
2007/01/24 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
python list语法学习(带例子)
2013/11/01 Python
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
python使用mailbox打印电子邮件的方法
2015/04/30 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
某科技软件测试面试题
2013/05/19 面试题
会计个人实习计划书
2014/08/15 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
工作失职检讨书
2015/01/26 职场文书
先进基层党组织主要事迹材料
2015/11/03 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
python requests模块的使用示例
2021/04/07 Python