欢迎您光临自学哈网,只为分享网络知识教程,供大家学习参考!

「自学哈网」php文件限速下载示例代码

作者 : 自学哈 本文共926个字,预计阅读时间需要3分钟 2022-10-8 共185人阅读
也想出现在这里? 联系我们

限速下载示例代码

<?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动态输出。

本站声明:
本站所有资源来源于网络,分享目的仅供大家学习和交流!如若本站内容侵犯了原著者的合法权益,可联系邮箱976157886@qq.com进行删除。
自学哈专注于免费提供最新的分享知识、网络教程、网络技术的资源分享平台,好资源不私藏,大家一起分享!

自学哈网 » 「自学哈网」php文件限速下载示例代码
也想出现在这里? 联系我们
© 2022 Theme by - 自学哈网 & WordPress Theme. All rights reserved 浙ICP备2022016594号