Как узнать об удачном скачивании файла?

andfm

Новичок
Как узнать об удачном скачивании файла?

После того как пользователь скачает файл мне необходимо вычисть некоторую сумму с его счета, но только при удачном скачивании. Если во время скачивания произошла ошибка или файл не докачался, в этом случае конечно же ничего не вычитается с его счета. Подскажите как это реализовать в скрипте или где можно посмотреть.

Спасибо
 

whirlwind

TDD infected, paranoid
2andfm: если найдешь здесь нормальный не студенческий вариант, то черкани здесь ссылочку плз. Если не найдешь, но очень надо, могу поделиться, есть один вариантик...
 

ForJest

- свежая кровь
Кстати, если это mp3 - то я могу считить такую систему. Не докачать последний байт, допустим.
Так что лучше, пожалуй вычитать сразу и потом возвращать деньги в случае, если появились претензии.
 
ForJest, у меня б претензии тогда появлялись постоянно...

как вариант - отправлять письмом...
 

andfm

Новичок
Автор оригинала: Loshadka
ForJest, у меня б претензии тогда появлялись постоянно...

как вариант - отправлять письмом...
Спасибо как дополнительный вариант пойдет, но хочется в "живую"
 

Virtual GOD

Новичок
тю. а просто помечать для пользователя в базе, что этот файл уже оплачен, нельзя? а потом просто при раз он оплачен давать ему его скачать.. можно срок ограничить на закачку.. например на год... картинки например тоже можно не до конца докачивать.. как и мр3..
 

ForJest

- свежая кровь
Virtual GOD
По окончании закачки нужно убрать доступ на файл. Чтобы несколько человек не могли скачать с одного аккаунта.
 

kvf77

Red Devil
ForJest

никак не пойму - а что мешает сделать авторизацию на скачивание - и отдавать его тока тому, кто имеет право? есть много способов сделать антилич систему
 

andfm

Новичок
Автор оригинала: kvf77
ForJest

никак не пойму - а что мешает сделать авторизацию на скачивание - и отдавать его тока тому, кто имеет право? есть много способов сделать антилич систему
Так смысл в том чтобы только при успешном скачивании снять с его счета некую сумму, а не дать доступ или нет. Это я уже сделал.
 

kvf77

Red Devil
andfm

это я к тому что при таком подходе смысл удалять файл сразу из доступа после его скачки? дай юзеру время месяц на скачку - в чем проблема - если не скачал, кто виноват?
 

andfm

Новичок
внимательно посмотрите вопрос. Дело не в том чтобы дать доступ к файлу или нет, эта проблема и так решается. Если у клиента нету денег на счету то естественно ему и нет доступа, даже если он и зарегистрируется. Дело в том чтобы точно знать что он успешно скачал файл и за это я с его счета снимаю денюжку. А то получится что у него при закачке с интернетом чтонить случилось или с моей стороны чтонить а денюжку до закачки я уже снял, как то нечестно получается.
 

kvf77

Red Devil
andfm
внимательно посмотри, что я тебе написал? дай ему возможность скачать файл в течение месяца скажем - даже если у него каждые 5 минут со связью будет плохо, за месяц-то скачает
 

whirlwind

TDD infected, paranoid
Вопрос не "для чего", а каким образом. Лично я решил эту проблему анализом лога примерно следующего формата

%>s:%{Content-Length}o:%{Content-Range}o:%B:%U:%q
 

tche

Новичок
Решал подобную проблему, но для скачивания PDF файлов, никаких денег не бралось, но для статистики нужно знать, сколько файлов докачиваются до конца, а сколько не до конца, то есть битые.

Раз в сутки запускал кроном скрипт, который парсил access_log и сравновал скаченный размер с реальным размером файла, если они совпадают, значит все нормально.

Ч.
 

andfm

Новичок
после просмотра найденных поисковиком тем пришел к следующим выводам:

1. лог апача
2. использование fpassthru ну и соответственно свой скрипт.

Что общественность может добавить или покритиковать?
 

Virtual GOD

Новичок
хм.. странно.. мне бы это не понравилось.. ведь пользователь купил файл... если он захочет его раздать друзьям он и так его раздаст... вплоть до того что разошлет по мылу или выложит где-то в инете.. по идее если человек за файл заплатил то он может его качать столько сколько нужно.. максимум можно его ограничить временем.. неделя - две.. - месяц/год
 
Сверху