Показатель обратной загрузки файла для форм (Upload Progress Meter) |
|
|
Они служат для показания процента аплоада на сервер файла который вы заливаете
через форму. К сожалению, на самом простом уровне показать процент аплоада
нельзя, а хотелось бы. Согласитесь видеть процент загрузки всегда приятней чем
скучный "Loading..." в строке-статуса браузера, поэтому я расскажу как сделать
такой аплоад-показатель для ваших форм загрузок.
Чтобы еще лучше понять о чем речь попробуйте рабочий пример:
http://php5.bluga.net/UploadProgressMete…
Для начала я установил новенький http сервер Apache версия 2.2.4 и не совсем
новенький PHP 5.2.0
Надеюсь устанавливать эти приложения вы умете, я скажу лишь что делал это под
Windows поэтому к php нам нужно будет подключить два расширения .dll если они
еще у вас не установлены, это:
php_apc.dll
php_json.dll
Чтобы установить эти расширения нужно положить эти файлы папку расширений вашего
сервера, чтобы узнать что это за папка выполните phpinfo(); и посмотрите
переменную extension_dir (обычно C:phpext)
В 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 если запустите лежащий внутри папки файл получите такую
картинку:

Проверьте загрузились ли модули, это можно сделать функцией extension_loaded
Теперь создайте файл php и вставте в него такой текст
такой текст всё должно работать,
в нём используется библиотека
пользовательского интерфеса Yahoo! для создания двигающейся полосы загрузки,
вы можете использовать что-то своё.
Возможно вам прийдется удаленно работать с сервером:
http://www.odessa.net/docs/LINUX/SHELL/s…
Сейчас есть uploadprogressextension для таких целей, это конечно тоже вариант но
не люблю лишними екстеншинами загружать сервер, а php_apc и php_json всётаки и
так бы стояли.
Спасибо за внимание.
Автор:
http://fuksito.habrahabr.ru/
|