Скачал ли файл полностью?

Gas

может по одной?
Таким образом Вы не избаветесь от передачи логина с рук в руки
Открою секрет, не нужно никому давать логин и пароль, достаточно после покупки самому выложить файл на каком-то сайте или разослать друзьям и т.д. Так что ограничение времени скачивания нормальный вариант, либо вообще без ограничения - купил человек, пусть получит возможность скачивать столько раз, сколько ему нужно (хотя от проекта конечно зависит).
 

dimagolov

Новичок
ИМХО самое вменяемое ограничение - на срок жизни ссылки.
Но если так параноит, что могут скачивать сразу все друзья, то
не проще ли отслеживать ОДНОВРЕМЕННЫЙ запрос одного и того же фрагмента и рубить ссылку в таком случае? Пользователя предупреждать - качать из одного места. Это не гарантирует, конечно что нескольким особо удачливым не удастся одновременно закачивать разные фрагменты, особенно если у них быстрый инет и вытянуто все в начале одним а потом другим. Но по крайней мере если в среднем закачка занимает не меньше 30-40% времени жизни ссылки, то максимум получится скачать аж из 3-х разных мест, что не такой уж и плохой результат.
 

Zetruger

ivan.chistyakov.name
1. может ли Apache узнать, что файл не был успешно передан клиенту
2. как у него об этом узнать
Apache - может ибо TCP это умеет
PHP теорит. через
connection_aborted
connection_status

обязательно надо использовать
ignore_user_abort(TRUE);
set_time_limit(0);

на прак. ни разу не делал - нужно пробовать
 

FedY@

Новичок
Автор оригинала: 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 указал истинный путь!;)
 
Сверху