首页 > 编程语言 >php文件限速下载示例代码

php文件限速下载示例代码

时间:2023-10-18 09:03:29浏览次数:38  
标签:示例 限速 Content header file flush download php local

<?php
// 将发送到客户端的本地文件
$local_file='abc.zip';
// 文件名
$download_file='your-download-name.zip';
// 设置下载速率(=> 31.2 kb/s)
$download_rate=31.2;
if(file_exists($local_file)&&is_file($local_file)){
 header('Cache-control: private');// 发送 headers
 header('Content-Type: application/octet-stream');
 header('Content-Length: '.filesize($local_file));
 header('Content-Disposition: filename='.$download_file);
 flush();// 刷新内容
 $file=fopen($local_file,"r");
 while (!feof($file)){
  print fread($file,round($download_rate*1024));// 发送当前部分文件给浏览者
  flush();// flush 内容输出到浏览器端
  sleep(1);// 终端1秒后继续
 }
 fclose($file);// 关闭文件流
}else{
 die('Error: 文件 '.$local_file.' 不存在!');
}

php文件限速下载示例代码

php教程 我的站长站 2022-05-07 共646人阅读  加入收藏 ·帝国CMS7.5后台模板美化版V2.3.0 ·帝国CMS7.5会员中心美化版V1.0GBK&UTF ·帝国CMS美女图片站模板[电脑端+手机端+采集] ·苹果CMS精品模板VIP免费下载 ·承接前端开发 帝国CMS开发 ·全站内容页文字广告位招商中 赞助

限速下载示例代码

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <?php // 将发送到客户端的本地文件 $local_file='abc.zip'; // 文件名 $download_file='your-download-name.zip'; // 设置下载速率(=> 31.2 kb/s) $download_rate=31.2; if(file_exists($local_file)&&is_file($local_file)){  header('Cache-control: private');// 发送 headers  header('Content-Type: application/octet-stream');  header('Content-Length: '.filesize($local_file));  header('Content-Disposition: filename='.$download_file);  flush();// 刷新内容  $file=fopen($local_file,"r");  while (!feof($file)){   print fread($file,round($download_rate*1024));// 发送当前部分文件给浏览者   flush();// flush 内容输出到浏览器端   sleep(1);// 终端1秒后继续  }  fclose($file);// 关闭文件流 }else{  die('Error: 文件 '.$local_file.' 不存在!'); }

代码释义

代码中默认下载速度限制为31.2kb/s,即每秒仅向客户端发送20.5kb的文件流,直到发送完整个文件为止。

使用前需要添加头文件,声明Content-Type为application/octet-stream,表示该请求将以流的方式发送,并且声明Content-Length,即声明了文件流的大小。

在代码里使用了flush(),flush函数作用是刷新php程序的缓冲,实现print动态输出。

<?php // 将发送到客户端的本地文件 $local_file='abc.zip'; // 文件名 $download_file='your-download-name.zip'; // 设置下载速率(=> 31.2 kb/s) $download_rate=31.2; if(file_exists($local_file)&&is_file($local_file)){  header('Cache-control: private');// 发送 headers  header('Content-Type: application/octet-stream');  header('Content-Length: '.filesize($local_file));  header('Content-Disposition: filename='.$download_file);  flush();// 刷新内容  $file=fopen($local_file,"r");  while (!feof($file)){   print fread($file,round($download_rate*1024));// 发送当前部分文件给浏览者   flush();// flush 内容输出到浏览器端   sleep(1);// 终端1秒后继续  }  fclose($file);// 关闭文件流 }else{  die('Error: 文件 '.$local_file.' 不存在!'); }

标签:示例,限速,Content,header,file,flush,download,php,local
From: https://www.cnblogs.com/mo3408/p/17771220.html

相关文章

  • php一键打包压缩目录文件代码示例
    <?php$button=$_POST['button'];if($button=="开始打包"){$zip=newZipArchive();$filename="./".date("Y-m-d")."_".md5(time())."_zy.zip";if($zip->......
  • PHP8.1.5安装与启用Xdebug扩展
    1、进入终端窗口,输入php-i命令,显示出当前系统的PHP安装环境。2、把PHP-i的输出复制出来。如图所示3、打开https://xdebug.org/wizard网站,粘贴刚复制的字符,点击Analysemyphpinfo()output按钮,让网站自动分析。如下图1、下载安装包wgethttps://xdebug.org/files/xdebug-......
  • PHP课程笔记(第一课)
    1.第一课PHP代码标记:在PHP历史发展中,可以使用多种标记来区分PHP脚本ASP标记:<%php代码%>短标记:<?php代码?>脚本标记:<scriptlanguage="php">php代码</script>标准标记(常用):<?phpphp代码?>1.Web技术——B/S架构B/S(Browser/Server)架构:指的是浏览器/服务器端的......
  • PHP 核心特性之匿名函数
    来源:http://www.shanhubei.com/archives/2814.html在匿名函数出现之前,所有的函数都需要先命名才能使用functionincrement($value){return$value+1;}array_map('increment',[1,2,3]);有的时候函数可能只需要使用一次,这时候使用匿名函数会使得代码更加简洁直观,......
  • php匿名函数怎么写
    来源:http://www.shanhubei.com/archives/2808.htmlPHP匿名函数和闭包使用的句法与普通函数相同,但匿名函和闭包数其实是伪装成函数的对象.匿名函数:就是没有名称的函数.匿名函数可以赋值给变量,对象传递.不过匿名函数仍是函数,因此可以调用,还可以传入参数.匿名函数特别适合作......
  • js时间戳和php时间戳
    js时间转换1、JavaScript的时间对象转换为时间戳1.1、时间对象转时间戳的5种写法在JavaScript中,将时间对象转换为时间戳的方法有5种,示例如下://定义一个时间对象dt,然后依次演示各种将dt转换为时间戳的写法vardt=newDate("2019-07-0423:59:59.999");//写法......
  • ecshop | php接入支付宝申报海关接口的总结【避坑】
    第一次对接支付宝的报关接口,害!不明白这个流程是很难接上的,搞了一天半,终于给搞出来了。在这里留下一点文字吧。代码前工作:用支付宝的密钥生成工具生成一对2048的公私钥,这对公私钥用来完成支付宝支付的加签和验签。把公钥上传到开放平台密钥中对应使用的应用接口加签方式中,私钥......
  • ubuntu安装php7.4-8.0
    更新,加入源apt-getupdateapt-yinstallsoftware-properties-common安装存储库ppa:ondrej/php,它提供所有PHP版本add-apt-repositoryppa:ondrej/phpapt-getupdate开始安装php74apt-yinstallphp7.4php-v安装额外的php模块apt-getinstall-yphp7.4-clip......
  • uni-app结合PHP实现单用户登陆demo及解析
    这篇文章主要为大家介绍了uni-app结合PHP实现单用户登陆示例过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪单用户登陆uni-appsocket单用户登陆例推送单用户登陆例单用户登陆即在一个应用中,同一个用户只能在线登陆一个,一个用户登陆,在其他设备上会......
  • php中关于token验证的相关问题详解
    这篇文章主要介绍了php中关于token验证的相关问题详解的相关资料,需要的朋友可以参考下目录token验证首先是为什么用?那么怎么用呢?token的组成一般token组成:JWT组成:标准的组成:总结token验证什么是token?我相信很多开发者都或多或少听过基于token的用户鉴权和基于session的用户......