|
|
|
определение успешной загрузки
|
|||
|---|---|---|---|
|
#18+
Есть ли возмржность опеределить что пользователь загрузил файл с http сервера полностью? Серевер Apache, но я думаю это не имеет большого значения. Мне видеться два решения: 1. Анализировать логи сервера и считать объем переданных данных. 2. Генерировать ссылку с UID на специальный скрипт, который будет обрабатывать http запросы выдавая (как-то) кусочки файла. Как можно реализовать 2 способ, есть ли у кого какие-нить идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 15:27 |
|
||
|
определение успешной загрузки
|
|||
|---|---|---|---|
|
#18+
На одном http задача не решается. Количество посланных байт, не всегда равно количеству принятых, плюс возможные ошибки при передаче. Так что ни первый, ни второй способ не дадут однозначного ответа на вопрос получил клиент файл целиком или не получил. Зато если слегка подправить клиента, то можно: после запроса и получения основного файла, клиент должен послать POST или GET с отчетом об успешно принятом файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 17:27 |
|
||
|
определение успешной загрузки
|
|||
|---|---|---|---|
|
#18+
madgolЕсть ли возмржность опеределить что пользователь загрузил файл с http сервера полностью? Серевер Apache, но я думаю это не имеет большого значения. Привожу простейший пример. Недавно я качал какую-то Free-операционку в виде iso образа. Канал был достаточно толстый и я решил не заморачиваться и качнуть браузером IE. Образ размером 2.0 Гб был успешно закачан в temporary files, а на этапе сохранения его из кеша на диск возникла ошибка нехватки места. Когда я это заметил (на другой день утром) и попытался исправить ситуацию, то понял что уже поздно. Файл был удалён с диска и из кеша безследно. Эта ситуация никаким образом не разруливается со стороны сервера. В его логах будет запись об успешно скачанных 2.0 Гигабайтах данных (возможно порциями), и никаких сведений о том, что с ними стало дальше. Мне видеться два решения: 1. Анализировать логи сервера и считать объем переданных данных. Неумное решение. По причинам, которые я указал выше. 2. Генерировать ссылку с UID на специальный скрипт, который будет обрабатывать http запросы выдавая (как-то) кусочки файла. Как можно реализовать 2 способ, есть ли у кого какие-нить идеи? Это похоже на попытку создать свой собственный p2p протокол. Т.е. разбиваешь файл на порции (chunks) добавляешь к каждому контрольную сумму и выставляешь его на доступ. Недостатки - надо создавать свой собственный протокол. И клиент и сервер должен его поддержать. Можно создать апплет с подписью, который будет реализовывать этот функционал но стоит ли тратить такие усилия? Лучше хоршенько договорится с провайдером и поднять ftp. Этот протокол исторически был создан для медленных и глючных каналов. В случае сбоя закачки пользователь сам мог продолжить в режиме добавления. В качестве клиента можно использовать TotalCommander или FarManager. Ничего также не имею против других ftp-утилит. Еще можно научить пользователя использовать различные download-managers. Можно подсунуть ему готовый скрипт типа wget -c --tries=10000 .... и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 19:06 |
|
||
|
определение успешной загрузки
|
|||
|---|---|---|---|
|
#18+
Я немного погорячился со словом "загрузил полностью", важен не сам факт загрзуки клиентом идентичного файла, а факт того что пользователь "загружал" файл, а не нажал отмену через 5 секунд. Возможно использовать только http. Мне кажется download менеджеры указывают какой-то offset при загрузке (докачке) с которого необходимо продолжить/начать загрузку, соотвественно наверное возможно написать обертку на сервере которая анализируя запрос с сервера будет отдавать файл кусочками (по http протоколу)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 22:14 |
|
||
|
определение успешной загрузки
|
|||
|---|---|---|---|
|
#18+
madgolМне кажется download менеджеры указывают какой-то offset при загрузке (докачке) с которого необходимо продолжить/начать загрузку, соотвественно наверное возможно написать обертку на сервере которая анализируя запрос с сервера будет отдавать файл кусочками (по http протоколу)? Это уже реализовано. Указание offset - опция HTTP протокола. Другое дело, что многие браузеры (в т.ч. IE) не поддерживают возможность докачки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2008, 23:17 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=136&tid=1344983]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 311ms |

| 0 / 0 |
