Получение времени загрузки файла на сервер (скрипт php/html)

Модератор: Модераторы разделов

AleXXandEr
Сообщения: 79
ОС: Debian sarge 3.1

Получение времени загрузки файла на сервер

Сообщение AleXXandEr »

Файл передается на сервер методом POST :

Код: Выделить всё

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input name="filename" type="file">
    <input type="submit" value="Send">
</form>


Как получить время загрузки файла на сервер? Загрузка видимо начинается после нажатия кнопки Send, и нужно как-то получить время нажатия на эту кнопку. Или может как-то по-другому?

Второй вопросик: Как получить еще объем переданного траффика при передаче файла на сервер методом Post (цель- сравнить объем траффика по протоколам http и https)?
Спасибо сказали:
WolfON
Сообщения: 226

Re: Получение времени загрузки файла на сервер

Сообщение WolfON »

время записывай в базу.
траффик контролирую каким-нить стандартынм преложением
ArchLinux on AXP2000+/768/ATI R9600XT
Registered Linux User 396336
Спасибо сказали:
AleXXandEr
Сообщения: 79
ОС: Debian sarge 3.1

Re: Получение времени загрузки файла на сервер

Сообщение AleXXandEr »

WolfON писал(а):
04.05.2006 17:27
время записывай в базу.
траффик контролирую каким-нить стандартынм преложением


А как получить время нажатия на кнопку?
А каким приложением контролировать трафик, если сервер локальный (на своем компе)?
Спасибо сказали:
Аватара пользователя
glenable
Сообщения: 40
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение glenable »

AleXXandEr писал(а):
04.05.2006 21:13
А как получить время нажатия на кнопку?

Вот тебе решение - геморрой, но иначе никак. Итак:

В форме отправки заводишь hidden-поле. При генерации страницы записываешь в него текущую серверную дату и время. На странице заводишь жабаскрипт, который заставляет "идти часы" в этом hidden-поле. Необязательно обновлять ежесекундно, можно повесить на onLoad запминание текущего локального времени, а при нажатии кнопки отправки вычислить разницу между текущим временеми сохранённым, и на величину этой самой разницы скорректировать значение hidden-поля. Т.е.

Hidden = Hidden + (Текущее_Локальное_Время - Сохраненное_Время_Загрузки_Страницы).

Зачем такой геморрой? Так ведь мало того что часы на всех компьютерах настроены, мягко говоря, не как хронометры... Да ещё и часовые пояса разные бывают :) Так что придётся вычислять именно серверное время...

При этом сделать страницу доступной только для тех, у кого включены скрипты. Простейший пример - спрятать всю форму в невидимый div и сделать его видимым только при загрузке страницы (всё в том же onLoad). И не забыть про <noscript>.

В этом случае получаешь ещё и параметр из hidden-поля с записанным временем отправки :)
Спасибо сказали:
Аватара пользователя
Гарыныч
Сообщения: 202
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение Гарыныч »

Я немного не понял. Нужно получить именно время нажатия кнопки Send?

Что-то я туплю под вечер. Можно при нажатии кнопки send в какой-нибудь хидден-поле вставлять текущее юникс-время, на сервере скрипт, принимающий файл после его загрузки отметит это юникс-время. Вычитаем - получаем время в секундах.
Только остается один баг - кто сказал, что время на клиенте и сервере синхронизованно?
Но и тут можно что-то придумать.
Спасибо сказали:
Аватара пользователя
glenable
Сообщения: 40
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение glenable »

Гарыныч писал(а):
04.05.2006 23:05
Только остается один баг - кто сказал, что время на клиенте и сервере синхронизованно?
Но и тут можно что-то придумать.

Что придумать - я уже предложил... А вот что придумать попроще - даже и не знаю. Вероятно, ничего.
Спасибо сказали:
Аватара пользователя
Гарыныч
Сообщения: 202
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение Гарыныч »

Ну, например, в хтмл-документ пхп пишет ява-скрипт с серверным (своим) юникс-временем, который после загрузки определит юникс-время клиента, найдет разницу и запишет себе куки. а? :)

Блин, ну я точно туплю под вечер.
Спасибо сказали:
Аватара пользователя
glenable
Сообщения: 40
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение glenable »

Гарыныч писал(а):
04.05.2006 23:43
Ну, например, в хтмл-документ пхп пишет ява-скрипт с серверным (своим) юникс-временем, который после загрузки определит юникс-время клиента, найдет разницу и запишет себе куки. а? :)

Приблизительно это я и предложил. Что доказывает - другие варианты решения как-то не находятся...

Значит, надо делать так :)
Спасибо сказали:
Аватара пользователя
n2j2r
Сообщения: 494
Статус: najar

Re: Получение времени загрузки файла на сервер

Сообщение n2j2r »

а разьве файл закачивается не при вызове $_FILES['uploadedfile']['tmp_name']; ???
Спасибо сказали:
Аватара пользователя
Гарыныч
Сообщения: 202
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение Гарыныч »

Нет
Спасибо сказали:
shu2
Сообщения: 7

Re: Получение времени загрузки файла на сервер

Сообщение shu2 »

Гарыныч писал(а):
04.05.2006 23:05
Можно при нажатии кнопки send в какой-нибудь хидден-поле вставлять текущее юникс-время, на сервере скрипт, принимающий файл после его загрузки отметит это юникс-время.

Все дело в том, что вставляется время открытия страницы с формой, а не время нажатия кнопки. А это совсем не одно и тоже, к сожалению.
Видимо только PHP это сделать не сможет, обидно.

Кстати- сервер локальный, на своем компе.

Как же все-таки тогда со вторым вопросом (в Дебиане)?
Спасибо сказали:
Аватара пользователя
Гарыныч
Сообщения: 202
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение Гарыныч »

shu2 писал(а):
05.05.2006 11:48
Гарыныч писал(а):
04.05.2006 23:05

Можно при нажатии кнопки send в какой-нибудь хидден-поле вставлять текущее юникс-время, на сервере скрипт, принимающий файл после его загрузки отметит это юникс-время.

Все дело в том, что вставляется время открытия страницы с формой, а не время нажатия кнопки.
Где Вы это увидели? Я разве так написал? Я написал:
при нажатии кнопки send
то есть:

Код: Выделить всё

<form name="sendform">
        <input type="hidden" name="starttime" value="0">
        ...
        <input type="button" value="Send" OnClick="SubmitForm()">
</form>

Код: Выделить всё

function SubmitForm() {
        with(new Date()) {
                document.sendform.starttime.value = getTime();
        }
        document.sendform.submit();
}

Вот как-то так.
Спасибо сказали:
Аватара пользователя
glenable
Сообщения: 40
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение glenable »

Гарыныч, так ты попадёшься на нестыковку времени. Нужно именно закидывать серверное время в hidden, сохранять на самой странице локальное время её загрузки, а потом при нажатии кнопки вычислять разницу времени и суммировать с серверным в hidden-поле.

Топикстартер: ну неужели не понимаешь идею?
Спасибо сказали:
Аватара пользователя
Гарыныч
Сообщения: 202
ОС: Gentoo

Re: Получение времени загрузки файла на сервер

Сообщение Гарыныч »

Можно сделать Ajax'ом.
При нажатии на send сначала аяксом идет callback на сервер (он отмечает время), затем submit формы. А? :)
Спасибо сказали:
shu2
Сообщения: 7

Re: Получение времени загрузки файла на сервер

Сообщение shu2 »

Спасибо всем!
А как же второй вопросик: Как получить еще объем переданного траффика при передаче файла на сервер методом Post (цель- сравнить объем траффика по протоколам http и https) - сервер локальный на моем компьютере - ОС - Debian?
Спасибо сказали: