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

yipeiwu_com6年前PHP代码库

本文实例讲述了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 实现超简单的SESSION与COOKIE登录验证功能示例

本文实例讲述了PHP 实现超简单的SESSION与COOKIE登录验证功能。分享给大家供大家参考,具体如下:第一步,制作一个提交信息的表单页面这里我不过多叙述,都能懂的把他命名为login...

PHP中Notice错误常见解决方法

对于初学者,肯定会遇到不同的错误提示,比如:警告,致命,等等,其中NOTICE错误等级最低,页面中,好多类似 Notice: Use of undefined constant titl...

PHP中抽象类、接口的区别与选择分析

本文实例分析了PHP中抽象类、接口的区别与选择。分享给大家供大家参考,具体如下: 区别: 1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然...

一个PHP的远程图片抓取函数分享

复制代码 代码如下: function grabImage($url, $filename = '') { if($url == '') { return false; //如果 $ur...

了解PHP的返回引用和局部静态变量

先阅读手册 ========== 从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & :  复制代码 代码如下: <?php&nbs...