首先,我很抱歉,但我的英语不是很流利。 我想通过我的服务器从另一个站点向用户传输几个巨大的文件。现在我正在使用那个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
我该怎么做才能获得更好的传输速率?
答案 0 :(得分:0)
您可以考虑使用sendfile,与wget / popen组合相比,它具有良好的性能。
或只是发送带有网址的HTTP 302
启动wget并使用popen连接它的输出比使用fsockopen直接连接效率低。