Вы не можете прочитать весь файл в память. Измените ваш файл для чтения ($ _ REQUEST ['file']); в:
$handle=fopen($_REQUEST['file'], 'rb');
while (!feof($handle))
{
echo fread($handle, 8192);
flush();
}
fclose($handle);
Это прочитает 8 КБ файла, затем отправит его клиенту и так далее ... Он будет занимать не так много памяти (так как не читает весь файл сразу).
Также при принудительной загрузке всегда используйте application/octet-stream
, это обеспечит правильную отправку двоичных файлов.