Появилась потребность сделать прогресс бар загрузки файлов на сервер.
И так, загружая файл в Хроме, в нижнем левом углу, мы отчетливо видим его "родной" прогресс бар, который отображается в виде процентной шкалы.
Как можно перехватить значение этой шкалы и добавить его, например в этот плагин JQ UI ?
Спустя 22 минуты, 24 секунды (27.02.2012 - 18:42) Visman написал(а):
Может тут чего толкового есть http://habrahabr.ru/blogs/jquery/124401/
Спустя 14 часов, 42 минуты, 26 секунд (28.02.2012 - 09:25) redreem написал(а):
средствами JS - никак. JS не может ничего знать о процессе отправки кусков файла. Разве что ActiveX в IE может имеет что-то в арсенале. А вот если на стороне сервера будет скрипт, принимающий более одного соединения одновременно, то можно без проблем сделать на JS. Отправляем файл, а потом паралельным запросом из сетинтервал опрашиваем сервер о ходе принятия файла и формируем прогресбар. Только вот чистым Apach+PHP это видимо не удастся. Что то другое должно вертеться на сервере.
Спустя 56 минут, 26 секунд (28.02.2012 - 10:21) RCuPeR написал(а):
redreem, я вот, что думаю:
после submit-а моей формы каждые n миллисекунд setInterval-ом на сервер отправлять AJAX запрос в котором сравнивать разницу между целым размером файла ($_FILES['file']['size']) и размером файла который находится во временной директории ($_FILES['file']['tmp_name']). Далее исходя из полученных данных, с помощью animate(properties, [duration], [easing], [complete]) формировать шкалу прогресса.
Думаю, прокатит.
В общем, буду сегодня-завтра делать сие чудо - об успехах отпишу.
после submit-а моей формы каждые n миллисекунд setInterval-ом на сервер отправлять AJAX запрос в котором сравнивать разницу между целым размером файла ($_FILES['file']['size']) и размером файла который находится во временной директории ($_FILES['file']['tmp_name']). Далее исходя из полученных данных, с помощью animate(properties, [duration], [easing], [complete]) формировать шкалу прогресса.
Думаю, прокатит.
В общем, буду сегодня-завтра делать сие чудо - об успехах отпишу.
Спустя 21 минута, 1 секунда (28.02.2012 - 10:42) killer8080 написал(а):
Цитата (RCuPeR @ 28.02.2012 - 09:21) |
AJAX запрос в котором сравнивать разницу между целым размером файла ($_FILES['file']['size']) и размером файла который находится во временной директории ($_FILES['file']['tmp_name']) |
Чистым php не получится. $_FILES['file']['tmp_name'] появится только когда запустится скрипт, принимающий файл, а это произойдет только по окончании загрузки. Существуют какие то PEAR расширения, для этих целей, но это слишком геморно.
А чем собственно swfupload не угодил? Там как раз в реале можно отслеживать аплоад, безо всяких костылей. Плюс всякие вкусности в виде мультиселекта файлов.
Спустя 19 минут, 28 секунд (28.02.2012 - 11:02) redreem написал(а):
RCuPeR
если у тебя стандартная сборка Apach+PHP, то пока сервер не завершит загрузку он на другие запросы тебе не ответит.
я об этом и говорил выше. тут надо прикручивать что-то распаралеливающее запросы. типа FastCGI или еще что...
если у тебя стандартная сборка Apach+PHP, то пока сервер не завершит загрузку он на другие запросы тебе не ответит.
я об этом и говорил выше. тут надо прикручивать что-то распаралеливающее запросы. типа FastCGI или еще что...
Спустя 4 минуты, 27 секунд (28.02.2012 - 11:06) RCuPeR написал(а):
redreem, сильно сложно. Не думал, что это будет такой проблемой.
killer8080, будет проблемно прикрутить swfupload, попробую, конечно, но, не думаю, что получится...
killer8080, будет проблемно прикрутить swfupload, попробую, конечно, но, не думаю, что получится...
Спустя 6 минут, 11 секунд (28.02.2012 - 11:12) killer8080 написал(а):
Цитата (RCuPeR @ 28.02.2012 - 10:06) |
killer8080, будет проблемно прикрутить swfupload |
Почему?
Спустя 4 минуты, 18 секунд (28.02.2012 - 11:17) RCuPeR написал(а):
Цитата (killer8080 @ 28.02.2012 - 08:12) | ||
Почему? |
Работаю с уже готовым решением, тут все сильно хитро сделано.
Спустя 5 минут, 55 секунд (28.02.2012 - 11:23) redreem написал(а):
RCuPeR
ну зато если разберешься - сделашь шажок к высоконагруженным проектам
ну зато если разберешься - сделашь шажок к высоконагруженным проектам
Спустя 5 минут, 23 секунды (28.02.2012 - 11:28) killer8080 написал(а):
Спустя 4 минуты, 47 секунд (28.02.2012 - 11:33) RCuPeR написал(а):
Хм...Спасибо, думаю, сегодня-завтра приступить. Интересная вещь
Спустя 14 минут, 36 секунд (28.02.2012 - 11:47) redreem написал(а):
я у себя уже сделал этот APC. только вот после отправки файла на upload.php, запросы к getprogress.php непроходят до окончания загрузки. а после окончания загрузки потом зараз приходят все ответы от getprogress.php.
может с iframe что-то недокрутил конечно. надо еще раз проверить.
может с iframe что-то недокрутил конечно. надо еще раз проверить.
Спустя 2 дня, 22 часа, 36 минут, 11 секунд (2.03.2012 - 10:24) killer8080 написал(а):
Наткнулся на интересное нововведение PHP. Начиная с версии 5.4 появилась возможность отслеживать аплоад через сессии
http://php.net/manual/ru/session.upload-progress.php
http://php.net/manual/ru/session.upload-progress.php
Спустя 20 минут, 2 секунды (2.03.2012 - 10:44) RCuPeR написал(а):
killer8080, к сожалению, пока отказались от этого нововведения на сайт.
Но рано или поздно тему придется понимать и ваша информация будет полезна.
Спасибо большое !
Но рано или поздно тему придется понимать и ваша информация будет полезна.
Спасибо большое !
_____________
Гнусный социопат с комплексом Бога.