2012-05-30 73 views
0

我編寫了一個php腳本,它可以幫助限制下載文件的速度和連接。我用fopen()fseek()是這樣的:當我們使用fopen()命令時,php加載整個文件

$f = fopen($file, 'rb'); 
if($f){ 
    fseek($f,$start);//$start extracted from $_SERVER['HTTP_RANGE'] 
    while(!feof($f)){ 
     echo fread($f,$speed);//$speed is bytes per second 
     flush(); 
     ob_flush(); 
     sleep(1); 
    } 
    fclose($f); 
} 

下載過程可能需要幾個小時才能完成,是整個文件在內存中,直到下載結束?以及如何優化這個?

回答

6

不,fread使用內部緩衝區來傳輸數據(默認情況下爲8KB),因此只有很小一部分文件實際駐留在內存中。

相關問題