How to: know current size of file when uploading?

Andrey deepmindster at gmail.com
Thu Apr 19 00:02:41 MSD 2007


Доброго времени суток.

Собственно, 
хотелось бы прогресс-бар при загрузке файлов на сайт. Файлы довольно
большие, до 100 мб, пользователи нервничают, пока ждут...

Мысль проста. Недалеко ушла от существующих реализаций.

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

В общем, проблема в том, что не знаю, с какой стороны подходить. Видимо
нужно добавить код, который будет посылать браузеру куки при загрузке
файла. А так же код, который будет по пришедшим кукам определять текущий
размер загружаемого файла, а так же ожидаемый размер загружаемого файла
и отправлять это браузеру. Конфиг мог бы выглядеть как-то так:

location = /upl_file_status {
  get_upl_file_status;
}

location /upload {
  set_upl_file;
  rewrite /upload /upload.php last;
}

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

Посему прошу откликнуться тех, кто может реализовать это. Возьмёться ли
кто нибудь? Или эта идея не нужна (или, может быть, не имеет смысла)?

Если кто подскажет, куда копать(чтобы реализовать) и/или поможет оценить
сложность задачи, буду тоже очень благодарен.

С уважением,
Андрей.







More information about the nginx-ru mailing list