Descripción y fuentes del upload PHP + AJAX con barra de progreso

Días atrás comenté que había estado trabajando en un pequeño experimento para conseguir implementar un sistema para realizar upload de archivos mediante PHP, que permitiera generar una barra de progreso, con la que controlar el estado de la carga de archivos en todo momento.

A continuación encontraréis disponible para descara el código fuente de dicho experimento y una pequeña descripción del paquete y de los requisitos para su puesta en marcha.

Contenidos del paquete

  • /cgi-bin/upload.cgi: este es el CGI perl que se encarga de gestionar el upload, además de ir escribiendo todos los datos POST en un único archivo que nos permite controlar el total de datos cargados en el servidor en un momento determinado.
  • /upload.php: es el documento principal, que contiene el código HTML y JS necesario para crear dinámicamente los campos file y el listado de archivos que vamos a cargar al servidor, así como dibujar dinámicamente la barra de progreso a partir de las respuestas recibidas por AJAX.
  • /ajax_process.php: es el script PHP que recibirá las peticiones AJAX, comprobará el estado del upload y devolverá una respuesta XML con datos como el tamaño total del archivo, la cantidad de datos cargada, los nombres de los archivos...
  • /xml.class.php: un par de clases para crear/parsear datos XML.
  • /img: contiene dos imágenes opcionales: un fondo animado para la barra de progreso y un icono "en proceso".

Ejemplo en vivo

Podéis ver un ejemplo real en la URL https://www.obolog.com/upload.php

... »

Un Volkswagen de "Turbo-Cojones"

Volkswagen se ha visto obligada a retirar las vallas publicitarias en las que anunciaba un nuevo modelo GTI bajo el slogan "Turbo-Cojones". Al parecer, el término "cojones", entre los angloparlantes, se ha adoptado con una significado similar a "valiente" o "visceral", mientras que para los hispanoparlantes sigue siendo una palabra malsonante, como para nosotros.

Vamos, un anuncio desafortunado "de cojones".

... »

Upload de archivos y progressbar con PHP,Perl y AJAX

Aún cuando no he conseguido desentramar el misterio de la antena reaparecida, otra misteriosa casualidad ha roto mi paz interior, esta vez relacionada con el trabajo.

Hoy al llegar a la oficina me he encontrado con una recomendación por mail en qué se citaba un artículo en inglés que habla acerca de un sistema de carga de ficheros con barra de progreso usando técnicas AJAX y PHP+Perl como lenguages de servidor.

Da la casualidad que llevo semanas intentando montar un sistema así para el upload de videos y audio en OboLog , y de hecho hace algunos días que he conseguido una primera versión funcional, y me ha sorprendido que el artículo de Thomas Epineer, "Asynchronous file upload with AJAX progress bar in PHP", se ha basado exactamente en los mismos proyectos que el "mix" en qué he estado trabajando, como apunté días atrás en la lista de correo de JQuery.

... »

Duendes

Te sitúo: hace una semana algún desalmado me robó la antena del coche. Es de esas estándares, que se pueden sacar fácilmente desenroscándolas, así que tampoco tuvo que aplicarse demasiado. Pues bien, esta mañana al ir a recoger el coche me he llevado una sorpresa mayúscula: alguien había vuelto a colocar una antena a Fluky! Me he quedado de piedra y he entrado en el modo paranoico.

La he revisado y no es la misma antena, la base es algo diferente, y la rosca está un poco torcida, pero... de dónde ha salido!? Quién la ha repuesto? Le entró al ladrón un ataque de mala conciencia y decidió robar una antena a otro coche para reponer su daño?? Habrán sido los duendes? Será un dispositivo de seguimiento extraterrestre con forma de antena?... Por dios... estoy desconcertado.

... »