AJAX File Upload con JSF

Voy a describir el modo de hacer carga de ficheros mediante JSF utilizando AJAX. El método esta adaptado del que utiliza Martin Konicek en PHP.

Utilizaremos el componente FileUpload incluido en el Tomahawk de Apache Myfaces. En primer lugar creamos dos páginas web, una será la que contenga la imagen y otra el formulario. Incluimos la segunda en la primera mediante un iframe.

Configuramos la opción onChange del componente FileUpload para que ejecute un código javascript que cambia la imagen actual por otra imagen de carga (un indicador ajax por ejemplo). La forma de hacerlo es accediendo al documento padre y modificando el atributo src del img. A continuacion, se ejecutará un submit(). Esto establecerá el valor del UploadedFile del managed bean que da soporte al FileUpload. En el cuerpo del método setImage (o como se llame) del managed bean se guardará la imagen del modo que sea más adecuado (un fichero, una base de datos, en memoria, etc).

El iframe se recargará y se debe añadir un método en el onLoad del body. í‰ste método se encargará de modificar la imagen del documento padre para que apunte a la nueva imagen subida. Lo normal será pasarle como parámetro la localización de la nueva imagen, que habrá sido establecida por el setImage mencionado en el párrafo anterior.

Si todo es correcto, se verí­a el cambio de imagen :-)

Posted By dsuarez

David nació en Las Palmas de Gran Canaria, España. Estudió Ingeniería en Informática en la Universidad de Las Palmas de Gran Canaria (ULPGC), donde ha trabajado en investigación los últimos años. Siempre ha sentido una gran curiosidad por los ordenadores y las ciencias, y más recientemente en el mundo empresarial. Ha trabajado como programador/analista, consultor en tecnologías de la información y obtuvo la beca de Google Summer of Code en 2006. Es socio fundador de Wantudu (http://wantudu.es), empresa especializada en terminales táctiles para hoteles.

3 Responses to “AJAX File Upload con JSF”

  1. jhonny says:

    No puedes ser un poco mas especifico

  2. dsuarez says:

    ¡Hola!

    La verdad es que esto lo trabajé hace mucho. Léete lo que tení­a hecho Martin Konicek primero y luego intenta adaptarlo según mis instrucciones. Si te fijas bien el post es de hace casi dos años… el tiempo que hace que no toco el JSF; así­ que todo lo que pueda decir te acerca de ello estará, lamentablemente, desactualizado.

    ¡Gracias por aparecer por mi blog!

  3. Dario Lopitlato says:

    Hola!

    LA verdad que me hiciste perder el tiempo, deberias a hacer un blog de anime

    Saludos

    Dario

Leave a Reply