【发布时间】:2009-12-06 20:24:20
【问题描述】:
在我的网站上,用户可以输入文件的链接,我可以通过我的服务器将下载过程流式传输给他们。我使用这样的系统:
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: ' . $r[2]);
header('Content-Disposition: filename=' . $theName);
flush();
$file = fopen($fileName, "r");
while(!feof($file))
{
print fread($file, 10240);
flush();
sleep(1);
}
fclose($fileName);
我的想法是,我的用户下载速度很慢(600kb/s)。托管的服务器位于 1Gbit 端口上,因此他们应该将互联网连接最大化十倍。
我想知道是否有更好的方法来做这种事情,也许是 cURL?我对 cURL 没有太多经验,但如果有任何反馈,我将不胜感激。
谢谢。
【问题讨论】:
-
尝试打印一些静态字符串(循环或其他)而不是从文件中读取。这将帮助您确定磁盘访问是否是问题的原因。
-
我认为他正在从用户指定的远程服务器实时获取数据。