欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

php教程

php文件限速下载示例代码

php教程 我的站长站 2022-05-07 共662人阅读

限速下载示例代码

<?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代码
  • PHP文件下载
  • 下载限速
  • 支付宝企业账户转账个人账户php接口代码

    前言支付宝企业账户转账个人账户php接口代码,该接口主要用于平台对用户奖励的发放,场景也很简单就是我在你平台上有余额,我提现,平台给钱。只不过项目中是用的官方的SDK调用的,仔细看了下那个SDK目录,把很多无用的接口(目前自己用不上)也包含在里面,作为强...

    php教程 161 2年前
  • php判断目录文件是否存在

    一段简单的php判断目录文件是否存在代码,收藏记录一下,以后肯定用得到的。<?php$filename = &#39;../../e/install/&#39;; if (file_exists($filename)) { echo "<h3><div align=&#39;center&#39;><font color=&#39;#FF0000&#39;>存在安全风险!请将 ...

    php教程 115 2年前
  • curl函数获取API接口数据方法

    PHP利用curl函数,获取API接口数据方法示例代码,自用收藏<?php $weather = curl_init(); curl_setopt($weather,CURLOPT_URL,"https://api.pc2801.com/cqssc/".time()); curl_setopt($weather, CURLOPT_SSL_VERIFYPEER, false); //如果...

    php教程 89 2年前
  • 158网盘直连解析代码

    API代码<?php/*** @package 158Pan* @author Andy* @version 1.2.0* @link https://lsland.cn*/// 指定允许其他域名访问 header(&#39;Access-Control-Allow-Origin:*&#39;);header(&#39;content-type:application/json;charset:utf-8&#39;);functi...

    php教程 132 2年前
  • PHP获取QQ用户昵称+头像API接口代码

    如果要获得QQ用户的头像和昵称,需要在腾讯开放平台申请API接入才可以,但是这个不需要!只需要输入用户的正确的QQ号即可返回用户的头像和昵称。API接口代码<?php // 通过QQ号即可获取用户信息 // 获取QQ头像接口// http://q1.qlogo.cn/g?b=qq&nk=QQ号&s=...

    php教程 224 2年前
  • PHP大文件分流下载示例代码

    <?phpset_time_limit(0);$zip_file=&#39;demo.rar&#39;; $fp=fopen($zip_file,&#39;r&#39;);//只读方式打开 $filesize=filesize($zip_file);//文件大小/***********************header头不要设置错了哦****************************/ //返回...

    php教程 15 1年前
  • PHP大文件限速下载功能示例代码分享

    PHP在开发大文件下载功能中,推荐使用文件分段下载,避免文件过大,下载失败或文件损坏。大文件限速下载PHP代码<?php//设置文件最长执行时间set_time_limit(0);if (isset($_GET[&#39;filename&#39;]) && !empty($_GET[&#39;filename&#39;])) { $file_nam...

    php教程 35 1年前
  • Nginx + X-Accel大文件下载示例代码

    Nginx + X-Accel大文件下载示例代码,做个记录以后会用到。// 启用 nginx X-Accel 下载 header(&#39;Content-Type: application/octet-stream&#39;); $encoded_fname = &#39;附件名称&#39;; header(&#39;Content-Disposition: a...

    php教程 20 1年前
  • PHP下载功能手机浏览器乱码和变成HTML格式的解决方法

    今天我的站长站在测试一款下载站源码时发现,发现电脑端下ZIP文件完美无错,用手机浏览器和第三方浏览器下载变成了乱码,苹果手机还会给ZIP下载文件变成html格式。解决方案网上找了很多种解决方法,有的说是编码没设置好,有的说函数错乱。最后测试,我的站长站...

    php教程 46 1年前
  • Accept-Length无法获取下载文件大小解决方法

    php下载文件时,我们一般会加上如下的header信息:header("Content-type: application/octet-stream");header("Accept-Ranges: bytes");header("Accept-Length:".$fileSize); //请用Content-Lengthheader("Content-Disposition: attachment; filename="...

    php教程 38 1年前
  • 大文件分片上传 / 下载限速解决方案

    分片上传将需要上传的文件按照一定的分割规则,分割成相同大小的数据块;初始化一个分片上传任务,返回本次分片上传唯一标识;按照一定的策略(串行或并行)发送各个分片数据块;发送完成后,服务端根据判断数据上传是否完整,如果完整,则进行数据块合成得到原始文件。...

    php教程 39 1年前
  • php文件限速下载示例代码

    限速下载示例代码<?php// 将发送到客户端的本地文件$local_file=&#39;abc.zip&#39;;// 文件名$download_file=&#39;your-download-name.zip&#39;;// 设置下载速率(=> 31.2 kb/s)$download_rate=31.2;if(file_exists($local_file)&&is_file($local_fi...

    php教程 662 1年前
  • PHP大文件限速下载功能示例代码分享

    PHP在开发大文件下载功能中,推荐使用文件分段下载,避免文件过大,下载失败或文件损坏。大文件限速下载PHP代码<?php//设置文件最长执行时间set_time_limit(0);if (isset($_GET[&#39;filename&#39;]) && !empty($_GET[&#39;filename&#39;])) { $file_nam...

    php教程 35 1年前
  • nginx大于10M文件下载限速方案

    一、限制向客户端传输响应的速率句法: limit_rate rate;默认: limit_rate 0;内容: http,server,location,if in location限制向客户端传输响应的速率。在rate被以每秒字节数指定。零值禁用速率限制。该限制是根据请求设置的,因此,如果客户端同时打开两个连接...

    服务器配置 134 1年前
  • 完整的X-Accel-Redirect限速下载大文件方案

    前言网上搜索X-Accel-Redirect限速下载都是千篇一律的教程,如果按照网上的教程开发,下载大文件时,我的站长站测试还是下载一半会失败。我的站长站研究了很久,发现网上的分享的代码,缺少很多参数,整理分享一篇完整的X-Accel-Redirect大文件下载方案。准备工...

    php教程 78 1年前