Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отслеживание скачки файла пользователем на жёсткий 
:(
    Опции темы
geniuss
Дата 6.11.2008, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 6.11.2008

Репутация: нет
Всего: нет



Имеется следующая задача: отследить момент, когда пользователь завершил скачку файла. Код на стороне сервера (PHP):
Код

       $fileName = "file.txt";

        header("Content-Disposition: attachment; filename=" .$fileName);
        header("Content-Type: application/octet-stream");
        header("Content-Length: " . filesize($file));        
        
        readfile("$file");

На стороне клиента получение файла реализуется через фрейм (JavaScript):

Код

initiateDownload = function() {
    var iFrame = document.getElementById('downloadFrame');
    if (!iFrame) {
        iFrame = document.createElement("iframe")
        iFrame.setAttribute("id", "downloadFrame");
        iFrame.setAttribute("style", "display:none;visibility:hidden;width:0px; height:0px; border: 0px");

        document.body.appendChild(iFrame);
    }
    
    iFrame.src = "index.php?cmd=getFile;
}


Так же пробовал вместо фреймов использовать функцию window.showModalDialog (эффект почти тот же):

Код

initiateDownload = function() {
window.showModalDialog("index.php?cmd=getFile);
}


При вызове функции initiateDownload идёт запрос на сервер, на стороне клиента появляется окно с предложением сохранить файл, при этом пользователь может как сохранить файл, так и отказаться от этого. Так вот задача состоит в том, чтобы чётко отследить факт скачки файл на жёсткий диск. Пока что у меня не получилось этого сделать. Если у кого-то есть какие-то идеи, буду рад выслушать.
PM MAIL   Вверх
Michael.de
Дата 6.11.2008, 05:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: 2
Всего: 9



Цитата(geniuss @  6.11.2008,  04:29 Найти цитируемый пост)
Так вот задача состоит в том, чтобы чётко отследить факт скачки файл на жёсткий диск.
факт начала скачки или факт полной скачки? И где отслеживать, на стороне клиента?
Если "начала" - юзер кликнул на "скачать", переменная ушла на сервер. Проверять на клиенте, скачал ли он файл целиком (path же у тебя есть), можно явой (если у него JRE установлен), JScript или VBS (windows). А на сервере ты и так всё знаешь.
P.S. или я вопрос не понял...
PM MAIL   Вверх
geniuss
Дата 6.11.2008, 05:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 6.11.2008

Репутация: нет
Всего: нет



Цитата(Michael.de @ 6.11.2008,  05:01)
Цитата(geniuss @  6.11.2008,  04:29 Найти цитируемый пост)
Так вот задача состоит в том, чтобы чётко отследить факт скачки файл на жёсткий диск.
факт начала скачки или факт полной скачки? И где отслеживать, на стороне клиента?

P.S. или я вопрос не понял...

Желательно полной скачки. Под этим понимается слудующая последовательность операций: пользователь нажал кнопку "сохранить как", выбрал путь, сохранил куда-то файл. И вот задача состоит в том, чтобы отследить выполнение такой последовательности, после чего, например, послать уведомление на сервер, что пользователь с таким-то IP скачал файл. Всё.
Но сгодится и вариант отслеживания "начала скачки". Под этим понимается операция нажатия кнопки "сохранить как", выбор пути и подтверждение. Всё.
И ещё. На стороне клиента у нас обычный браузер и JavaScript, не Java.
PM MAIL   Вверх
Michael.de
Дата 6.11.2008, 05:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: 2
Всего: 9



Полное скачивание и JavaScript - никак, т.к. с помощью JavaScript нельзя прочитать инфу с диска и удостовериться, что юзер не прекратил на полпути даунлоад.
Цитата(geniuss @  6.11.2008,  05:13 Найти цитируемый пост)
послать уведомление на сервер, что пользователь с таким-то IP скачал файл
а разве на сервере это (его IP и объём траффика) не известно?
я - спать, сорри smile

Это сообщение отредактировал(а) Michael.de - 6.11.2008, 05:25
PM MAIL   Вверх
IDVsbruck
Дата 6.11.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



geniuss, ты, видимо, слабо представяешь процесс аплоада файлов ...
С клиента отследить невозможно. Клиент может только отсылать запросы серверу - закачался ли файл. В какой-то момент сервер ответит, что закачался - тогда можно и мессадж кидать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0970 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.