> php教程 > php手册 > 有时候需要限制一下用户下载文件的速度,可以参考一下

有时候需要限制一下用户下载文件的速度,可以参考一下

WBOY
풀어 주다: 2016-06-06 19:32:20
원래의
1342명이 탐색했습니다.

(公司有个需求,防止人不停地下载,在别人的网站里看到的) 以下翻译来自Google 这个类可以用来限制下载文件的速度。 它拦截PHP脚本的输出提供给浏览器设置一个缓冲处理,被称为每次定的字节数。 类自最后一次测量的时间PHP输出缓冲液冲洗,并保持一段时间,

(公司有个需求,防止人不停地下载,在别人的网站里看到的)
以下翻译来自Google
这个类可以用来限制下载文件的速度。

它拦截PHP脚本的输出提供给浏览器设置一个缓冲处理,被称为每次定的字节数。

类自最后一次测量的时间PHP输出缓冲液冲洗,并保持一段时间,如果对PHP的平均下载速度超过给定的限制。

-------------------------------------------------- -------------------------
有三种不同的带宽整形机制,以确保有足够的服务质量:

1 )突发性传输速率将关闭X字节后发送给用户(这可以帮助的很快送小图像,并限制下载速度,巨大的文件)

2 )突发性传输速率将关闭一段时间,以秒后,它将恢复到标准节流速度

3 )突发传输速率不会被激活,下载速度的限制将是恒定的(在这种情况下,在整个下载过程$配置> burstLimit必须等于配置 - > rateLimit ) PHP

源码与演示:源码出处 演示出处

有时候需要限制一下用户下载文件的速度,可以参考一下 有时候需要限制一下用户下载文件的速度,可以参考一下
<?php
//throttler类太长可以到:http://www.codepearl.com/files/160.html下载
require("./throttler.php");

// create new config
$config = new ThrottleConfig();
// enable burst rate for 30 seconds
$config->burstTimeout = 30;
// set burst transfer rate to 50000 bytes/second
$config->burstLimit = 50000;
// set standard transfer rate to 15.000 bytes/second (after initial 30 seconds of burst rate)
$config->rateLimit = 15000;
// enable module (this is a default value)
$config->enabled = true;

// start throttling
$x = new Throttle($config);
//http://www.codepearl.com
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=\"test.txt\"");
header("Content-Length: 60000000");

// generate 60.000.000 bytes file.  
for($i = 0; $i < 60000000; $i++) {
	echo "A";
}
로그인 후 복사
<?php
//throttler类太长可以到:http://www.codepearl.com/files/160.html下载
require("./throttler.php");

// create new config
$config = new ThrottleConfigBySize();
// enable burst rate for first 500000 bytes, after that revert to the standard transfer rate
$config->burstSize = 500000;
// set burst transfer rate to 50000 bytes/second
$config->burstLimit = 50000;
// set standard transfer rate to 15.000 bytes/second (after initial 30 seconds of burst rate)
$config->rateLimit = 15000;
// enable module (this is a default value)
$config->enabled = true;

// start throttling
$x = new Throttle($config);
//http://www.codepearl.com
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=\"test.txt\"");
header("Content-Length: 60000000");

// generate 60.000.000 bytes file.  
for($i = 0; $i < 60000000; $i++) {
	echo "A";
}
로그인 후 복사
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿