| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
И да и нет. Что на стороне сервера происходит? |
| Автор: 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, в целом - да. Скрипт может быть и один, главное - чтобы у процессов не было разногласий с именем файла, закачиваемого этим пользователем с данной страницы. |
| Автор: 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 | ||||
Спасибо.
Вопрос в другом: Как я знаю название временного фаила если фаил ещё не загружен до конца? Я базируюсь на обычный стандартный 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 | ||
Вот как раз этого и не хотелось |
| Автор: 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 | ||||||
Мне так и не удалось понять следующее:
Нет, хотелось бы самому написать, по этому и пытаюсь понять. Добавлено через 7 минут и 30 секунд
Думаю, будет это перл, РНР или ещё какая задрыга, абсолютно не важно. В любом случае дело не только в серверной стотоне. Но правда на стороне клиента, в принцепе, нужно только рапросить и отрисовать. Вопрос только что тохно запрашивать. |
| Автор: Валерия 23.9.2008, 18:10 |
| Ставлю http://pecl4win.php.net/ext.php/php_uploadprogress.dll под апач (винда) Когда пытаюсь запустить какойто пример использующий прогресс-бар - апач завершает работу о_О |
| Автор: Валерия 25.9.2008, 13:34 |
| Хоть у когото вообще получилось сделать прогресс бар под виндовым сервером?) А еще лучше под денвером |