Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Прогресс бар


Автор: ShurikA 7.5.2008, 18:35
Я не уверен что это правильный раздел для этого вопроса, но всё же:
Я пытаюсь найти способ сделать прогресс бар для закачки фаилов. Всё хто я понаходил до сих пор в нете, это только всякие библиотеки.
Хотелось бы самому написать, и хотелось бы понять подход.

Автор: Scream 7.5.2008, 18:38
Это вам в раздел http://forum.vingrad.ru/forum/Javascript.html надо.

Автор: ShurikA 7.5.2008, 18:40
Цитата(Scream @  7.5.2008,  17:38 Найти цитируемый пост)
Это вам в раздел JavaScript надо. 

И да и нет.
Что на стороне сервера происходит?

Автор: Canarat 7.5.2008, 19:51
Во временной папке создается файл, который закачиващий скрипт постепенно дописывает. Контроллер прогресс-бара просто периодически проверяет текущий размер файла и сравнивает с ожидаемым, получаемым при начале загрузки файла. Так вычисляется процентное соотношение, а дальше - красивости на JS

Автор: ShurikA 7.5.2008, 20:00
Canarat, 
То есть, грубо говоря должны бежать 2 процесса. 
1. HTTP Upload
2. Проверяющий размер фаила.

Я правильно понимаю?

Автор: Kudzu 7.5.2008, 20:24
1 - со стороны сервера наполняем файл
2 - со стороны клиента(ajax,js) читаем файл, считаем процент, рисуем

Автор: Canarat 7.5.2008, 20:45
ShurikA, в целом - да. Скрипт может быть и один, главное - чтобы у процессов не было разногласий с именем файла, закачиваемого этим пользователем с данной страницы.

Автор: ShurikA 7.5.2008, 21:19
Цитата(Canarat @  7.5.2008,  19:45 Найти цитируемый пост)
главное - чтобы у процессов не было разногласий с именем файла, закачиваемого этим пользователем с данной страницы. 

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

Автор: Canarat 7.5.2008, 21:28
Если планируется многопоточная загрузка - можно хранить все имена файлов и соответствующие имена временных файлов в сессии. Это ИМХО наиболее простой в реализации метод. С одной страницы можно будет закачивать несколько файлов одновременно, именуя как div'ы так и поля. Реализация может быть любой.

А принцип, если позволяют знания английского, описан здесь:
http://blog.joshuaeichorn.com/archives/2005/05/01/ajax-file-upload-progress/

Автор: ShurikA 7.5.2008, 21:36
Цитата(Canarat @  7.5.2008,  20:28 Найти цитируемый пост)
А принцип, если позволяют знания английского, описан здесь:
http://blog.joshuaeichorn.com/archives/200...pload-progress/ 

Спасибо.


Цитата(Canarat @  7.5.2008,  20:28 Найти цитируемый пост)
можно хранить все имена файлов и соответствующие имена временных файлов в сессии. 

Вопрос в другом:
Как я знаю название временного фаила если фаил ещё не загружен до конца? Я базируюсь на обычный стандартный upload херез РНР

Автор: awers 7.5.2008, 23:47
Ajax не подойдет.. Тут либо java либо flash с ответной стороной php на сервере

Автор: Kudzu 8.5.2008, 00:11
http://bluga.net/projects/uploadProgressMeter/

Автор: ShurikA 8.5.2008, 01:48
Цитата(awers @  7.5.2008,  22:47 Найти цитируемый пост)
Ajax не подойдет.. Тут либо java либо flash с ответной стороной php на сервере 

Вот как раз этого и не хотелось

Автор: MoLeX 8.5.2008, 06:00
ShurikA, если нужно готовое решение то погляди http://forum.vingrad.ru/forum/topic-201412.html. товарищи из JS раздела подсказали где и на что изменить отдельный фрагменты кода, чтобы работал в разных браузерах...

Автор: solenko 8.5.2008, 09:49
Тема поднимается с периодичностью раз в месяц. Может стоит закрепить ее и описать все методы?
Собственно, известные мне методы:
1. Решение с помошью flash/java на стороне клиента
2. Решение с помошью другого языка/технологии на стороне сервера (обычно файл принимает perl скрипт)
3. Использование расширения ACL
4. (мифический) анализ размера файла в tmp

Автор: ShurikA 8.5.2008, 21:58
Мне так и не удалось понять следующее:
Цитата(ShurikA @  7.5.2008,  20:36 Найти цитируемый пост)
Вопрос в другом:
Как я знаю название временного фаила если фаил ещё не загружен до конца? Я базируюсь на обычный стандартный upload херез РНР 



Цитата(MoLeX @  8.5.2008,  05:00 Найти цитируемый пост)
ShurikA, если нужно готовое решение то погляди это. товарищи из JS раздела подсказали где и на что изменить отдельный фрагменты кода, чтобы работал в разных браузерах... 

Нет, хотелось бы самому написать, по этому и пытаюсь понять.

Добавлено через 7 минут и 30 секунд
Цитата(solenko @  8.5.2008,  08:49 Найти цитируемый пост)
2. Решение с помошью другого языка/технологии на стороне сервера (обычно файл принимает perl скрипт)

Думаю, будет это перл, РНР или ещё какая задрыга, абсолютно не важно. В любом случае дело не только в серверной стотоне. Но правда на стороне клиента, в принцепе, нужно только рапросить и отрисовать. Вопрос только что тохно запрашивать.

Автор: Валерия 23.9.2008, 18:10
Ставлю http://pecl4win.php.net/ext.php/php_uploadprogress.dll под апач (винда)
Когда пытаюсь запустить какойто пример использующий прогресс-бар - апач завершает работу о_О

Автор: Валерия 25.9.2008, 13:34
Хоть у когото вообще получилось сделать прогресс бар под виндовым сервером?)
А еще лучше под денвером smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)