|
5#
樓主 |
發表于 2023-6-28 16:32:28
|
只看Ta
不知這些還好使嗎?
前些天架設了一個小小的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 (); }
測試效果還比較明顯 |
|