download и пожирание памяти

chak

Guest
download и пожирание памяти

Привет All!
Вот какая проблема. Написал скрипт с докачкой. Рецепт нашел здесь же. Качаются файлы 300M Все вроде работает, но при этом апач начинает пожирать всю память? Каждый процесс весит около 320M
Виноват ли в этом мой скрипт? И что делать если да
 

chak

Guest
Код собственно такой примерно. :)

$file = "product.zip";

if(file_exists($file)) {
$fsize = filesize($file);
$ftime = date("D, d M Y H:i:s T", filemtime($file));
$fd = @fopen($file, "rb");
if (!$fd){
header ("HTTP/1.0 403 Forbidden");
exit;
}
if ($HTTP_SERVER_VARS["HTTP_RANGE"]) {
$range = $HTTP_SERVER_VARS["HTTP_RANGE"];
$range = str_replace("bytes=", "", $range);
$range = str_replace("-", "", $range);
$range = intval($range);
if ($range) {fseek($fd, $range);}
}
$content = fread($fd, filesize($file));
fclose($fd);
if ($range) {
header("HTTP/1.1 206 Partial Content");
}
else {
header("HTTP/1.1 200 OK");
}

header("Content-Disposition: attachment; filename=product.zip");
header('Content-Type: application/octet-stream');
header('Pragma: no-cache');
header('Last-Modified: ' . $ftime);
header('Accept-Ranges: bytes');
header('Content-Transfer-Encoding: Binary');
header('Content-Length: ' . ($fsize-$range));
header('Content-Range: bytes ' . $range . '-' . ($fsize-1) . '/' . $fsize);
header('Expires: 0');
print $content;

С точки зрения пользователя все нормально. Он получает то, что хочет, но вот сервер затыкается
 
Сверху