Как стать автором
Обновить

Показатель обратной загрузки файла для форм (Upload Progress Meter)

Время на прочтение 2 мин
Количество просмотров 4.7K
Вы когда-то видели этот лоадер:
rapidshare loader
Или вот этот:
drop.io loader

Они служат для показания процента аплоада на сервер файла который вы заливаете через форму. К сожалению, на самом простом уровне показать процент аплоада нельзя, а хотелось бы. Согласитесь видеть процент загрузки всегда приятней чем скучный «Loading...» в строке-статуса браузера, поэтому я расскажу как сделать такой аплоад-показатель для ваших форм загрузок.


Чтобы еще лучше понять о чем речь попробуйте рабочий пример:
php5.bluga.net/UploadProgressMeter/demo.php

Для начала я установил новенький http сервер Apache версия 2.2.4 и не совсем новенький PHP 5.2.0

Надеюсь устанавливать эти приложения вы умете, я скажу лишь что делал это под Windows поэтому к php нам нужно будет подключить два расширения .dll если они еще у вас не установлены, это:
php_apc.dll
php_json.dll

Чтобы установить эти расширения нужно положить эти файлы папку расширений вашего сервера, чтобы узнать что это за папка выполните phpinfo(); и посмотрите переменную extension_dir (обычно C:\php\ext)
В php.ini подключите их:
extension=php_apc.dll
extension=php_json.dll

Также следует задать параметры для php_apc, также в php.ini:
extension=php_apc.dll
apc.shm_segments=1
apc.optimization=0
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.rfc1867=On

Обратите внимание на последнюю установку, а именно apc.rfc1867 она непосредственно относиться к нашей задаче. больше по настройкам APC тут.

Установите php_apc если запустите лежащий внутри папки файл получите такую картинку:
apc

Проверьте загрузились ли модули, это можно сделать функцией extension_loaded

Теперь создайте файл php и вставте в него такой текст такой текст всё должно работать, в нём используется библиотека пользовательского интерфеса Yahoo! для создания двигающейся полосы загрузки, вы можете использовать что-то своё.

Возможно вам прийдется удаленно работать с сервером:
www.odessa.net/docs/LINUX/SHELL/shell.html

Сейчас есть uploadprogressextension для таких целей, это конечно тоже вариант но не люблю лишними екстеншинами загружать сервер, а php_apc и php_json всётаки и так бы стояли.
Спасибо за внимание.
Теги:
Хабы:
+18
Комментарии 83
Комментарии Комментарии 83

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн