[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Progress Bar
RCuPeR
Добрый день.
Появилась потребность сделать прогресс бар загрузки файлов на сервер.

И так, загружая файл в Хроме, в нижнем левом углу, мы отчетливо видим его "родной" прогресс бар, который отображается в виде процентной шкалы.

Как можно перехватить значение этой шкалы и добавить его, например в этот плагин 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]) формировать шкалу прогресса.
Думаю, прокатит.

В общем, буду сегодня-завтра делать сие чудо - об успехах отпишу.

Спустя 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 или еще что...

Спустя 4 минуты, 27 секунд (28.02.2012 - 11:06) RCuPeR написал(а):
redreem, сильно сложно. Не думал, что это будет такой проблемой.

killer8080, будет проблемно прикрутить swfupload, попробую, конечно, но, не думаю, что получится...

Спустя 6 минут, 11 секунд (28.02.2012 - 11:12) killer8080 написал(а):
Цитата (RCuPeR @ 28.02.2012 - 10:06)
killer8080, будет проблемно прикрутить swfupload

Почему? blink.gif

Спустя 4 минуты, 18 секунд (28.02.2012 - 11:17) RCuPeR написал(а):
Цитата (killer8080 @ 28.02.2012 - 08:12)
Цитата (RCuPeR @ 28.02.2012 - 10:06)
killer8080, будет проблемно прикрутить swfupload

Почему? blink.gif

Работаю с уже готовым решением, тут все сильно хитро сделано.

Спустя 5 минут, 55 секунд (28.02.2012 - 11:23) redreem написал(а):
RCuPeR

ну зато если разберешься - сделашь шажок к высоконагруженным проектам smile.gif

Спустя 5 минут, 23 секунды (28.02.2012 - 11:28) killer8080 написал(а):
Цитата (RCuPeR @ 28.02.2012 - 10:17)
Работаю с уже готовым решением, тут все сильно хитро сделано.

Ну если на флеш наложено табу, тогда кури APC. Вот нашел статейку по тому варианту, как ты хотел. Попробуй, заодно опытом поделишься. smile.gif

Спустя 4 минуты, 47 секунд (28.02.2012 - 11:33) RCuPeR написал(а):
Хм...Спасибо, думаю, сегодня-завтра приступить. Интересная вещь smile.gif

Спустя 14 минут, 36 секунд (28.02.2012 - 11:47) redreem написал(а):
я у себя уже сделал этот APC. только вот после отправки файла на upload.php, запросы к getprogress.php непроходят до окончания загрузки. а после окончания загрузки потом зараз приходят все ответы от getprogress.php.

может с iframe что-то недокрутил конечно. надо еще раз проверить.

Спустя 2 дня, 22 часа, 36 минут, 11 секунд (2.03.2012 - 10:24) killer8080 написал(а):
Наткнулся на интересное нововведение PHP. Начиная с версии 5.4 появилась возможность отслеживать аплоад через сессии smile.gif
http://php.net/manual/ru/session.upload-progress.php

Спустя 20 минут, 2 секунды (2.03.2012 - 10:44) RCuPeR написал(а):
killer8080, к сожалению, пока отказались от этого нововведения на сайт.
Но рано или поздно тему придется понимать и ваша информация будет полезна.
Спасибо большое !


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.