Upload masivo de archivos.

Después del artículo de Sean Coates llamado “You can, but you shouldn’t” que hablamos en “Browser War!” me tocó hacer algo que pensé que no se podía. Subir archivos masivos por http con una interfaz de usuario muy amigable; que se pudiera hacer un drag&drop de una carpeta de archivos al navegador y que se subieran a un sitio en Internet. Yo pensé que era imposible y dije, “I should, but I can’t”.

Este problema lo había tenido cuando desarrollé el sitio de hip.com.gt que ya no existe. Era un sitio parecido a Guate2Night o a ZonaGallo o a todos esos sitios de fotos de fiestas. El problema era como hacíamos para subir 400 fotos fácilmente. Quien ya ha desarrollado web se ha dado cuenta que la única forma de hacer esto es con un [input type=”file”] que nos da un recuadro donde poner el path del archivo y un botón que nos abre una ventana para revisar nuestra máquina y seleccionar un solo archivo. Si queremos subir 10 archivos a la vez, tenemos que seleccionar archivo por archivo, y hacer un formulario con 400 input-file es algo ridículo. Lo que hice fue, crear una cuenta FTP que suba todos los archivos a una carpeta, y con progra barro la carpeta para meter esas fotos a una galería. Esa es una forma fácil de hacerlo, el problema es cuando queremos dar este acceso público. No podemos crearle una cuenta FTP a cada usuario de los 500 fotógrafos que tengamos… ¿y seamos realistas, que usuario promedio sabe usar FTP?

La otra forma que programé, era subir un ZIP de los archivos. Un zip es un conjunto de archivos guardados en un solo paquete… si click derecho sobre la carpeta, crear zip , upload misfotos.zip y ya. Del lado del servidor agarro el zip, se desempaca, se barren todos los archivos interesantes y se guardan donde deben y ya. El problema es que parece que el usuario promedio tampoco sabe hacer un zip.

Parece que el concepto de “usuario promedio” de mi jefe es, el suegro de 80 años de la gerente de un sitio de fotos. ¡Enserio! El suegro de una clienta vio este sitio donde no puede subir sus fotos y si él no puede, nadie puede. Literalmente el señor quería que al arrastrar las fotos al navegador, sobre la página, las fotos aparecieran en su cuenta para poderlas compartir con las otras personas.

¿Que podía hacer yo? ¿Decirle al cliente que era un tarado sin concepto? Si, yo se que todos queremos decirle eso, pero explicarle a la gente que las cosas no son como ellos piensan no me paga mi casa. Técnicamente se me ocurrió 2 cosas, un applet Java o un ActiveX. Los ActiveX no eran una opción, primero porque mi máquina tiene instalado GNU/Linux y no podía desarrollar o probar el ActiveX. Vámonos por Java.

Java nooooooooo!! Java es lento, java es una hueva, java no lo tienen instalado el 98% de la gente. Ya nadie usa Java. Java perdió terreno en el escritorio contra .Net, y el terreno en web contra Flash. Flash es la alternativa ligera para las animaciones y la mayoría de burradas Java que existen. Flash es toda una herramienta programable que tienen instalados todos los usuarios. ¿Por qué no lo hago en Flash? Porque Flash no lee el FileSystem. Flash no puede leer tu computadora… ERROR!

Flash 8 tiene un sistema muy bonito para upload files, con el cual podemos llevar una barra de el porcentaje que llevamos subidos del archivo; y lo lindo es que el archivo sube por HTTP. No tuve que reporgramar casi nada. Mi PHP recibe una solicitud HTTP con un POST con un file y él se encarga de guardar el archivo donde sea que lo quiera guardar.

Comencé a hablar del artículo de “You can, but you shouldn’t” porque hablan de no rehacer widgets en JS o Flash para cosas típicas como un select-option o un radiobutton o cosas así. Pero la verdad este widget de un upload masivo hecho en Flash si es algo útil.

Es la primera vez que veo Flash haciendo algo mas útil que vistoso.

3 Responses to “Upload masivo de archivos.”

  1. Javier Aroche Says:

    ooohhh flash puede hacer eso! primera vez ke oigo esto.

    Yo use hace algun tiempo el sitio de multiply (red social, como el hi5) en donde se pueden subir hasta 150 fotos mensuales (y si se paga, llega a mas), la cosa es ke ellos utilizan una applet donde se puede arrastrar y soltar los archivos (tambien funciona con copiar y pegar), muestra su vista previa, se selecciona kuales se kieren subir y a ke resolucion (original o web). Al darle suber muestra ke archivo esta enviando y el % completado.

  2. Jose Solares Says:

    Al fin una solucion multi plataforma para poder subir varios archivos, los de quickphotoonline utilizan un activex para poder subir varias fotos a la vez, pero usuarios de mac y linux mejor que vayan a buscar a otro lado…

  3. str Says:

    Jose Solares, si te dás cuenta es para Flash8, cosa que no está portada a GNU/Linux. Osea que seguimos igual. Cuando existía Macromedia dijeron que el port de FlashPlayer8.5 estaba en camino; ahora con Adobe, nadie sabe.

Leave a Reply