Отдача файла

Vadimka

Новичок
Отдача файла

Отдаю файл полльзователю:

ini_set("memory_limit","96M");

if (($f = fopen($file_loc, 'rb')) === false) exit;
while (!feof($f)) {
echo fread($f, filesize($file_loc));
flush();
@ob_flush();
}
fclose($f);

сервер - апач, nginx - в качестве прокси сервера

в логах появились ошибки:
Fatal error: Allowed memory size of 100663296 bytes exhausted (tried to allocate 36130335 bytes) in

неужели 96М памяти нехватает? или по другому как-то отдавать файлы?
 

Vadimka

Новичок
наверное буду использовать
echo fread($f, (1*(1024*1024)));
во всяком случае попробую...
 

phprus

Moderator
Команда форума
Vadimka
while (!feof($f)) {
echo fread($f, filesize($file_loc));
flush();
@ob_flush();
}
А какой смысл в этом цикле? Вы же всеравно читаете весь файл в память за один раз.

Кроме этого можно попробовать использовать [m]readfile[/m]
 
Сверху