Тем более если юзер отменит закачку, твой скрипт думаешь, об этом узнает? ignore_user_abort спасёт мир, а в теле цикла юзать ф-цию connection_aborted() чтобы узнать, юзер на связи ещё или уже нет... Да, ещё не забудь поставить time_limit на выполнение скрипта. А то он по дефолту через 30 сек вырубится)
И ещё несложно подсчитать, если с тебя будет 10 человек разом качать файлы, ты израсходуешь ~10х50 Мб оперативки (примерно столько жрёт процесс апаче) если 100, то тебе надо будет 5 гигабайт рамы, иначе твой сервер станет такой тормозилой. А прикинь, кто-то качает по-полной, а какой-нить тормозила из России может час качать 10 мегабайт на своём модеме
Сделал всё, как ты сказал, ничего не прозошло
Ну а файл-то ты скачал? Открой его в текстовом редакторе (тока не в ворде) и может там что-то найдёшь... Ставь метки в начале цикла, в конце после цикла, чтобы при их срабатывании что-то где-нить сохранялось, помечалось что эта метка сработала, значит и цикл сработал) Работай