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中实现记住密码自动登录的代码
Mar 02 PHP
探讨捕获php错误信息方法的详解
Jun 09 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
两个php日期控制类实例
Dec 09 PHP
php实现httpRequest的方法
Mar 13 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
php 基础函数
Feb 10 PHP
Joomla框架实现字符串截取的方法示例
Jul 18 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
Nov 03 PHP
掌握PHP垃圾回收机制详解
Mar 13 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
php的4种常用运行方式详解
2016/12/22 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
Python自定义简单图轴简单实例
2018/01/08 Python
python代码过长的换行方法
2018/07/19 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
50道外企软件测试面试题
2014/08/18 面试题
办理护照介绍信
2014/01/16 职场文书
股权收购意向书
2014/04/01 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
团队会宣传标语
2014/10/09 职场文书
2014年人事部工作总结
2014/12/03 职场文书
django中websocket的具体使用
2022/01/22 Python
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android