PDA

Показать полную графическую версию : Проследить, закачался ли файл юзеру


vadimiron
13-12-2006, 21:24
Можно ли как-нибудь проследить, закачался ли файл юзеру?

Apache же передаёт инфу клиенту по TCP. Значит апач знает, клиент скачал всё (то есть удачно получил все фрагменты) или же связь оборвалась (например)
Можно ли эту информацию какнибудь вытащить?

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

В другую сторону уже есть решения. То есть можно переодически опрашивать, какой процент загрузки файла(UPLOAD от юзера), но и то видимо чисто PHP-фича

vadimiron
13-12-2006, 21:39
Хотя апач наверно тоже работает только на уровне сокетов и не опускается ниже, то есть нужную мне информацию знает только ОС.....а может быть и не так.....надо ещё подумать...

XCodeR
13-12-2006, 21:51
никак. Apache не работает на уровне системы и не знает, что происходит на компьютере пользователя.
теоретически можно реализовать через JS, но это уже будет обход системы безопасности.

vadimiron
13-12-2006, 22:38
XCodeR
и не знает, что происходит на компьютере пользователя
Не, конечно, не через вебстраницу такое должно делаться.

Sham
14-12-2006, 00:03
vadimiron Настраивай CustomLog, чтоб туда записывалась нужная тебе инфа (нпр, %f - файл, %B - послано байт и т.д.) и читай оттуда регуляркой... все проще чем ты думаешь :)

vadimiron
14-12-2006, 00:44
%f - файл, %B - послано байт

А если посылать через PHP скрипт, то файл будет тогда имя скрипта??

vadimiron
14-12-2006, 02:31
(%b)
... indicates the size of the object returned to the client, not including the response headers. If no content was returned to the client, this value will be "-". To log "0" for no content, use %B instead.
Я думаю, это тоже самое: Апач знает только, сколько байт было послано всего.

Sham
14-12-2006, 09:17
vadimiron непонятно - у тебя редиректится на файл или тело файла скриптом шлется... Еще обрати внимание на значение %X, т.е. если обрыв связи имел место, то оно будет 'X'. Ну и %s - статус запроса само собой...




© OSzone.net 2001-2012