Formulario de subida de ficheros

Formulario de subida de ficheros

El pasado 7 de febrero publiqué una comparativa de plugins para gestión de descargas de ficheros, con el título de Gestores de descargas para WordPress. Desde entonces tenía en mente la redacción de una serie de artículos complementarios sobre este mismo tema, y para ello he venido actualizando los plugins que entonces documenté (y también sus traducciones), he estado probando nuevos plugins, e incluso he creado varios blogs con el único de objetivo de experimentar una serie de extensiones que no sólo permiten gestionar las descargas de los ficheros subidos desde el interfaz de administración de WordPress, sino también subir ficheros desde el frontend del blog.

Para cualquier persona que pretenda utilizar WordPress como un sistema eficiente de gestión de ficheros, resulta de todo punto necesario que la aplicación no sólo sea capaz de organizar y etiquetar adecuadamente los ficheros, sino también hacer posible que los usuarios registrados en el blog (o incluso sus visitantes) puedan subirlos sin necesidad de conocer los intríngulis y complejidades del backend. En un contexto educativo, como por ejemplo el que motivó el comentario de Néstor Alonso al primer artículo de esta serie, esta última funcionalidad se convierte en un requisito imprescindible si se quiere, por ejemplo, que los alumnos puedan subir archivos y ponerlos a disposición de sus profesores o de otros compañeros.

A continuación, analizaré algunos de los plugins que permiten realizar subidas desde el frontend del blog y que he experimentado en los últimos meses. Conviene tener en cuenta que hay bastantes extensiones que he excluido de este análisis, porque o bien están especializados en el manejo de determinados ficheros (imágenes, vídeos), o bien se limitan a modificar el comportamiento original de la función de upload de WordPress, o bien sólo son accesibles desde el backend. Entre estos últimos merece la pena tener en cuenta los siguientes, que cito a título meramente informativo: Drag & Drop File Uploader, Upload Media by Zip, Uploader, WP Easy Uploader y WPlupload.

1. Easy FTP Upload. Es un plugin que realiza la subida de ficheros mediante una conexión FTP, cuyos parámetros deben definirse a tal efecto. Para integrarlo en cualquier entrada o página del blog basta con añadir el shortcode [easy_ftp_upload]. Es fácil de configurar y utilizar, pero tiene pocas opciones. Por otro lado, la recomendación del autor de crear una cuenta FTP específica para utilizar este plugin (muy razonable por motivos de seguridad) puede ser en muchos casos un obstáculo infranqueable para quien pretenda utilizarlo. Además, el plugin no permite la traducción al castellano mediante los procedimientos habituales de WordPress.

2. File Uploader. Se supone que este plugin debería permitir la subida de ficheros desde el frontend, para lo cual dispone del shortcode [file-upload], que se puede insertar en cualquier artículo del blog. Yo no he conseguido que cumpla su cometido, y además genera errores de PHP que lo hacen poco recomendable.

3. Inline Upload. Es uno de los plugins más completos y capaces de su género, y tiene la ventaja adicional de que puede traducirse al castellano mediante el procedimiento estándar de WordPress. Para obtener un formulario de subida de archivos, basta con colocar el shortcode [inline_upload] en cualquier entrada o página (véase la figura 1). La característica más destacada de este plugin es la enorme batería de opciones que se pueden activar en el formulario de subida, mediante los correspondientes atributos del shortcode. Entre las funcionalidades que pueden lograrse mediante esos atributos cabe destacar las siguientes:

  • Selección del rol de los usuarios que pueden subir ficheros.
  • Selección del directorio o directorios de destino. Para seleccionar entre los directorios disponibles existe una opción que permite crear un menú desplegable.
  • Selección del tipo y el tamaño máximo de los ficheros.
  • Multiinstanciación del formulario, lo cual permite realizar varias subidas de diferentes ficheros sin necesidad de recargar la página.
  • Selección del método de conexión; es posible subir los archivos por FTP, siempre que se configure la conexión con los datos necesarios.
  • Integración con el gestor de descargas WP-Filebase.
  • Notificación de la subida al usuario que en cada caso se determine.
  • Redirección a una página de destino cuando se termina la subida.
  • Personalización del tamaño y el orden de los elementos del formulario.
  • etc.
Figura 1 - Formulario de subida de ficheros del plugin Inline Upload

Figura 1 - Formulario de subida de ficheros del plugin Inline Upload

En la parte negativa del plugin hay que señalar –y advierto de antemano que no estoy seguro de que sea un defecto de la extensión, pues el fallo puede deberse a características de la configuración de los servidores con los que he realizado mis experimentos– que no todas sus versiones funcionan tal como sería esperable. Yo lo he probado en media docena de instalaciones, en tres servidores distintos, y sólo he conseguido subidas efectivas con las versiones comprendidas entre la 1.3 y la 1.5, ambas inclusive. Todas las demás, incluida la que está publicada en el repositorio de WordPress en el momento de escribir estas líneas (la 1.7.1), no funcionan, o yo no he conseguido hacerlas funcionar a pesar de todos mis intentos y variantes de configuración (diferentes combinaciones de permisos y parámetros), tanto del plugin como de los directorios de destino.

4. Upload Widget. Es un plugin muy sencillo, pero muy efectivo, que permite subir archivos desde un widget. Resulta muy fácil de configurar y de utilizar, y además es traducible al español. Permite definir el rol de los usuarios autorizados a subir los ficheros, el tamaño máximo de éstos y el directorio de destino (véase la figura 2). Estas características hacen posible un cierto grado de integración con plugins como WordPress Download Monitor, WP-DownloadManager o WP-Filebase.

Figura 2 - Widget de subida de ficheros del plugin Upload Widget

Figura 2 - Widget de subida de ficheros del plugin Upload Widget

5. Uploadify. Basado en el script homónimo (que utiliza jQuery y ActionScript), se trata de un plugin similar en concepto a Inline Upload, pues permite subir archivos mediante el shortcode [uploadify], que se puede añadir a cualquier artículo del blog (figura 3). Otra semejanza con Inline Upload es la gran cantidad de parámetros disponibles para complementar el shortcode básico, con los cuales se pueden conseguir diversas funcionalidades:

  • Selección de los scripts que procesarán los ficheros una vez subidos estos.
  • Selección del directorio de destino. Como también ocurre con el plugin Inline Upload, la definición de la ruta puede ser problemática. En las pruebas que yo he realizado, he tenido que definir una ruta absoluta completa, para lo cual me ha sido de gran utilidad el truco descrito en la entrada “Absolute Path” del glosario del Codex de WordPress.
  • Selección del tipo y el tamaño máximo de los ficheros.
  • Subida de múltiples ficheros, incluso de forma automática, una vez seleccionados éstos. También se puede determinar el número máximo de ficheros en cola y la cantidad máxima de ficheros que se pueden subir de forma simultánea.
  • Personalización de diversos textos, imágenes y botones del formulario de subida.
  • etc.
Figura 3 - Formulario de subida de ficheros del plugin Uploadify

Figura 3 - Formulario de subida de ficheros del plugin Uploadify

La principal desventaja del plugin es que por sí mismo no permite determinar el rol de usuario autorizado a subir los ficheros, con lo cual cualquier visitante puede acceder a dicha función, lo cual no es aconsejable por motivos obvios. Es cierto que existen varios sistemas para limitar este riesgo (proteger la entrada o página con contraseña o asociar un rol determinado a dicho artículo mediante algún plugin como Members, que es lo que yo he hecho en la página de subida del blog en el que he realizado mis experimentos), pero no deja de ser una molestia. Por otra parte, tampoco se puede traducir al castellano mediante el sistema estándar de WordPress; aunque esta limitación se puede soslayar en parte con los parámetros del shortcode, si se quiere una traducción completa hay que modificar el código.

6. WordPress Flash Uploader. En realidad, se trata de un puente (bridge) para acceder desde WordPress a las funciones de otro programa, el TWG Flash Uploader. En cualquier caso, estamos ante la más completa y potente de todas las extensiones analizadas en la comparativa, con una impresionante lista de funcionalidades (véase la página que acabo de citar), pero también la más difícil de configurar, entre otras razones porque sus menús están en inglés, y no se pueden traducir con el sistema estándar de WordPress. No obstante, su uso es bastante parecido a la mayoría de los plugins que he analizado, pues está basado en un shortcode [wfu securitykey=”clave_de_caracteres_aleatorios”], que se puede insertar en cualquier artículo del blog y genera un formulario de subida de ficheros (figura 4). A diferencia de Inline Upload o de Uploadify, este shortcode no tiene otro parámetro que la clave de seguridad, ya que todas las opciones de funcionamiento se definen desde los menús de configuración.

Figura 4 - Formulario de subida de ficheros del plugin WordPress Flash Uploader

Figura 4 - Formulario de subida de ficheros del plugin WordPress Flash Uploader

Dejando a un lado la dificultad de configuración, el plugin tiene otras dos desventajas: cuando se selecciona el idioma español, el interfaz en Flash presenta caracteres “extraños”, seguramente como resultado de una mala codificación de la traducción; además, la versión gratuita del plugin, que es la que se puede descargar del repositorio oficial de WordPress, está limitada a 3 MB en la cola de subida.

Después de examinados estos seis plugins (seguramente habrá otros que me han pasado por alto), mi recomendación final es bastante rotunda: la versión 1.5 de Inline Upload, que ofrece un buen equilibro entre funcionalidad y complejidad de configuración. Uploadify carece de algunas funciones esenciales para un uso responsable de las funciones de subida (como la limitación por rol de usuario) y WordPress Flash Uploader está limitado a un tamaño de ficheros ciertamente escaso para los tiempos que corren.

Conviene tener en cuenta, en cualquier caso, algunas observaciones que en cierta medida matizan estas recomendación:

  • La primera es que la redacción de este artículo debe considerarse como provisional (podría haber esperado algún tiempo más, pero se acerca un largo viaje de vacaciones y no quiero arriesgarme a dejar el artículo a medio terminar), en espera de comprobaciones adicionales sobre las dificultades observadas con la última versión del plugin Inline Upload, que no pierdo la esperanza de resolver.
  • La segunda es que ninguno de los plugins analizados garantiza una sinergia del todo eficiente con los plugins de gestión de descargas analizados en la primera entrega de esta serie. En este sentido, faltan las herramientas (o yo no las conozco) que sean capaces de producir una integración total entre las funciones de subida y descarga de archivos y que sean accesibles tanto desde el frontend como desde el backend; es decir, herramientas que permitan subir los archivos desde el frontend tanto de forma directa (formulario simple) como con la opción de una categorización y etiquetado previo (opción avanzada), y que además generen de forma automática listados de archivos para su descarga.
  • La observación final es que todavía tengo pendiente una tercera (y quizás hasta una cuarta) entrega de esta serie, en la que precisaré diversos aspectos de la integración entre los plugins de subida y de descarga, y mostraré el trabajo que he realizado en un blog de pruebas, al que corresponden las capturas de pantalla que ilustran este artículo. En esta tercera entrega tengo previsto llevar a cabo una reevaluación del plugin WP-Filebase, que ha mejorado muchísimo desde la redacción de Gestores de descargas para WordPress, y tal vez investigue también sobre la versión gratuita de Download Manager, un plugin de pago que ya mencioné en dicho artículo y que sobre el papel ofrece muy buenas impresiones.
alojamiento wordpress