Автор оригинала: Zetruger
Apache - может ибо TCP это умеет
PHP теорит. через
connection_aborted
connection_status
обязательно надо использовать
ignore_user_abort(TRUE);
set_time_limit(0);
на прак. ни разу не делал - нужно пробовать
Версия №1 (самая простая)
Если без потоков, докачки и т.д. можно просто в конце тела скрипта после достижения того же feof() можно изменять статус ссылки на скачиваемый обьект - тоесть запретить его снова скачивать. Если была оборвана связь, то ничего не делается.... а просто пусть начинает сначала.
Минусы:
1. Нету докачки
2. Нельзя качать в несколько потоков
Плюсы:
1. Никто не даст свой аккаунт другому, а если и даст то будет потом жалеть. (конечно русский народ всегда выйдет положение с етого, ето скачанных на почту, нарезка на диски, вылаживаение на файл обменники и т.д.) - Но я даю гарантию что таким образом 50% аудитории можно поднять
Версия №2
Тоже самое что версия №1, только нужно следить за каждым потоком и частью... можно конечно упростить и сделать только в один поток и проверять качает ли он дальше или снова?!
Этот вариант предоставляет нам только плюсы... но реализация не так уж и проста! В нём существует докачка, а если постаратся то многопотоковая передача.
Минусы:
1. Главный минус етого варианта - когда юзер не получает по каким-от причинам тот последний кбайт и т.д. (из-за интернета, електричества, рук и многих факторов) он получает битый файл. В таком случае думаю просто юзеру дать вторую возможность скачать файл - но для етого он должен подать запрос в тех. поддержку (после подачи запроса нужно будет внимательно отследить, он ли ето качал и его ли АйПи, и т.д.) Если конечно часто будет подавать такие запросы - рубить такого пользователя наф.
-~{}~ 25.07.07 16:13:
Скрипт сделан - проблема решена.
В 99% он работает...
Zetruger указал истинный путь!
