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 相关文章推荐
mysql 搜索之简单应用
Apr 27 PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
header导出Excel应用示例
Jan 24 PHP
php中的mongodb select常用操作代码示例
Sep 06 PHP
php简单定时执行任务的实现方法
Feb 23 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 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开发大型项目的一点经验
2006/10/09 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
php中smarty区域循环的方法
2015/06/11 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
nginx 设置多个站跨域
2021/03/09 Servers
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
深入分析JavaScript 事件循环(Event Loop)
2020/06/19 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
python源文件的字符编码知识点详解
2021/03/04 Python
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
机械个人求职信范文
2014/01/24 职场文书
班级活动策划书
2014/02/06 职场文书
优秀护士获奖感言
2014/02/20 职场文书
党支部书记岗位职责
2015/02/15 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
JavaScript 反射学习技巧
2021/10/16 Javascript