1

最初に申し訳ありませんが、私の英語は流暢ではありません。サーバーを介して別のサイトからいくつかの巨大なファイルをユーザーにストリーミングしたいと考えています。今、私はその wget と popen() に使用しています

$plik = "http://test.mm.pl/100.tmp"; // text file for test - 100 MB
header('Content-Type: application/exe');
header('Content-disposition: attachment; filename="'.basename($plik).'"');
header('Content-Transfer-Encoding: binary');

$fp = popen('wget -qO- '.$plik, 'r');

$bufsize = 1024; // 8192, 4096 i've tried many options
$buff = '';
while( !feof($fp) ) {
   $buff = fread($fp, $bufsize);
   echo $buff;
   flush();
}
pclose($fp);

しかし、転送速度は30〜60 kb / sの間で変動します:/サーバーで直接試してみると:

wget www.somsite.pl/file.tmp

: 私は ~ 500kb/s を持っています

より良い転送速度を得るにはどうすればよいですか??

4

1 に答える 1

0

wget/popen の組み合わせよりも優れたパフォーマンスを発揮するsendfileの使用を検討してください。

または単に URL を含む HTTP 302 を送信する

wget を起動してその出力を popen に接続するのは、fsockopen を使用して直接接続するよりも効果的ではありません。

于 2012-09-25T08:38:41.487 に答える