1
我編寫了一個名爲「的download.php」到文件推送到客戶端PHP腳本,表現非常糟糕
$fd = fopen($path, "rb");
if ($fd === false) {
echo "404 file not found";
return false;
}
Header("Content-type: image/png");
while (!feof($fd))
{
$buf = fread($fd, 1024);
if ($buf === false) {
break;
}
echo $buf;
}
fclose($fd);
當我在鉻試驗下載一個4M的圖像,它會消耗1.4s。 apache服務器在我的電腦上。如果我把圖像放在www /中並直接下載,那隻會消耗44ms。
我試圖增加fread的bufsize,但它只是提高性能。
取而代之的閱讀和在一個循環輸出塊,嘗試簡單地使用readfile。 – CBroe
@CBroe readfile會比fread好消耗643ms然後echo,但是仍然很長,而且readfile不支持部分下載,請問有沒有更好的方法? – yuanjianpeng
消耗什麼......? – CBroe