|
|
楼主 |
发表于 2023-6-28 16:32:28
|
查看全部
不知这些还好使吗?
前些天架设了一个小小的Discuz 6 论坛 ,上面上传了一些热门的电子书,相关附件的下载异常火爆。服务器的带宽不大,有些吃力,就想如何能实现附件的限速下载。本来不懂PHP的,网上倒是有PHP限速下载的代码。研究了一下Discuz的代码,实现了一个可行的方案。 很简单,找到attachment.pnp,找到最下面,有个
function getlocalfile($filename, $readmod = 1, $range = 0)
改成:
function getlocalfile( $filename , $readmod = 1 , $range = 0 ) {
if ( $fp = @ fopen ( $filename , ' rb ' )) {
@ fseek ( $fp , $range );
$download_rate = 10 ; // 限制网速10kb/s
while ( ! feof ( $fp ))
{
print fread ( $fp , round ( $download_rate * 1024 ));
flush ();
ob_flush ();
sleep ( 1 );
}
}
@ fclose ( $fp );
@ flush (); @ ob_flush (); }
测试效果还比较明显 |
|