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 相关文章推荐
PHP闭包(Closure)使用详解
May 02 PHP
PHP字符串的连接的简单实例
Dec 30 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
php实现三级级联下拉框
Apr 17 PHP
PHP框架性能测试报告
May 08 PHP
thinkphp分页实现效果
Oct 13 PHP
php array_merge_recursive 数组合并
Oct 26 PHP
PHP反射学习入门示例
Jun 14 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 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
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
深入解析Python中的lambda表达式的用法
2015/08/28 Python
TensorFlow平台下Python实现神经网络
2018/03/10 Python
Django自定义用户认证示例详解
2018/03/14 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
公司领导班子四风对照检查材料
2014/09/27 职场文书
反邪教观后感
2015/06/11 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
诚信高考倡议书
2019/06/24 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技