AJAX UPLOAD FILE Febrero 14, 2006
Posted by josegil in Personal.5 comments
Por la aplicación web que estoy desarrollando usando lo máximo posible ajax me ha surgido la necesidad de realizar la subida de archivos. Buscando por internet he encontrado algunas soluciones realmente interesantes, algunas en Ruby on Rails, descartadas dado que no estoy utilizando esta tecnología, y otras en php+ajax, como por ejemplo:
http://www.air4web.com/files/upload/, comentada ya en digg: http://digg.com/programming/Use_Ajax_To_Upload_Files, y es la que estoy usando y paso a comentar.
El funcionamiento del código que aparece en esta página es relativamente sencillo. La carga de datos la realiza un iframe, el cual, despues de saltar el evento onchange del input que aparece en pantalla, realiza el submit al mismo archivo (es decir, al mismo archivo del iframe). De esta forma se consigue un efecto igual que si se utilizara el objeto xmlhttp, aunque no se hace uso de él.
Otra forma de solucionar el problema puede ser http://blog.joshuaeichorn.com/archives/2005/05/01/ajax-file-upload-progress/, más elegante estéticamente porque muestra una barra con el proceso de la carga del archivo, pero la verdad es que el código que comenté anteriormente me sirve para lo que quiero hacer, con lo que no he llegado ha utilizarlo.
Más cosas sobre esto, existe una clase que hace esto, http://www.phpclasses.org/browse/package/2759.html, quizás esto se ajustara más a mis necesidades pero la verdad es que he tenido poca paciencia con esta clase, y al primer intento no me ha funcionado como debería, así que la deseché casi de inmediato.
Si alguien la tiene implementada por ahí y le funciona correctamente estaré encantado de echarle un vistazo…
Por último el enlace a la dirección de la web para la subida de archivos con barra de progreso en ruby on rails. http://sean.treadway.info/demo/upload/.