Instalar Librería PECL para mostrar el progreso de subida de archivos.
Como instalar la librería PECL para poder mostrar el progreso de subida de un archivo. Estos pasos los he probado en Ubuntu 10.04 pero "deberían" funcionar en cualquier distribución UNIX (Linux/MacOSX). En Windows supongo que, a parte de modificar algún paso, en lugar de uploadprogress.so habría que especificar uploadprogress.dll. Esto último no lo he comprobado, pero es lo que dice la teoría. Se espera que todos los pasos aquí especificados se ejecuten desde una terminal y con accesso como root del sistema, aunque algunos no lo precisen.
- Descargar la extensión PECL uploadprogress
- Descomprimir el archivo descargado
- $ tar -xvf uploadprogress-1.0.1.tgz
- Nos colocamos dentro del directorio descomprimido (cd) para luego ejecutar los siguientes comandos:
- $ phpize
- $ ./configure
- $ make
- $ sudo make install
- Comprobar que el directorio para las extensiones es el correcto. La ruta la devuelbe la ejecución del último comando: make install command En mi caso la ruta es: /usr/lib/php/extensions/no-debug-non-zts-20060613/.
- Abrir php.ini (con vim, vi, nano, o el editor que sea) y editar la directiva extension_dir, descomentandola si es necesario y sustintuyendo su valor por la ruta anterior.
- $ vim php.ini
- Añadir la extensión a php.ini añadiendole la línea extension=uploadprogress.so
- Reiniciar apache
- $ sudo /etc/init.d/apache2 restart
Si todo ha ido bien a partir de ahora veremos la librería activa en el informe de estado:

Y podemos especificar barra con medidor de progreso (progress bar) cuando creemos un campo de tipo archivo (file field) en lugar de Throbber:

De esta manera conseguimos instalar la librería y hacer que se puedan visualizar el progreso de subida del archivo.
NOTAS:
- Funciona perfectamente en Drupal 6, pero en Drupal 7, aunque en el informe de estado reconoce que la librería está correctamente instalada, no funciona correctamente, a fecha del 15/02/2011. Supongo que esto último no tardará en solucionarse.
- Parece que sólo funciona con una instlación estandar (PHP corriendo en Apache con mod_php) y no funciona si se utiliza FastCGI. Más información sobre este tema aquí.
REFERENCIAS:







