我编写了一个php脚本,可帮助限制下载文件中的速度和连接。我使用了fopen()
和fseek()
这样的内容:
$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);
}
下载过程可能需要几个小时才能完成,整个文件是否在内存中直到下载结束?以及我如何优化它?
答案 0 :(得分:6)
不,fread
使用内部缓冲区来传输数据(默认为8KB),因此只有很小一部分文件实际驻留在内存中。