Kamlov
28Jun/1020

Cargando un archivo con ICEfaces

Muchas veces nos es necesario poder subir archivos a nuestro servidor, ya sea para recoger datos del usuario en un formulario o simplemente parte del proceso de un sistema.

Aquí te dejo la forma más rápida y sencilla de subir archivos usando ICEfaces

Nuestro clásico Managed-Bean:

public class CargaArchivo{

public void subirArchivo(ActionEvent event) {

InputFile inputFile = (InputFile) event.getSource();
archivo = inputFile.getFileInfo();
ruta = archivo.getPhysicalPath();

}
//Método usado para la barra de progreso
public void progresoCargaArchivo(EventObject event)
{
InputFile ifile = (InputFile) event.getSource();
progreso = ifile.getFileInfo().getPercent();
}

}

Aquí te dejo el detalle de el control a usar:

       <ice:inputFile id="archivo" width="500" autoUpload="true"
                                                       progressListener="#{CargaArchivo.progresoCargaArchivo}"
                                                       actionListener="#{CargaArchivo.subirArchivo}"
                                                     />

                                     <ice:outputProgress value="#{CargaArchivo.progreso}"
                                                            styleClass="uploadProgressBar" />

Si observas bien, el parámetro autoupload esta en "true", lo cual quiere decir que no necesitamos de un submit  para poder pasar el archivo al servidor, este se da de manera automática.

La página nos quedaría de la siguiente forma:

Carga Completa

Como hemos visto,  una nueva funcionalidad a nuestra web hecho rápido y sencillo con ICEfaces. Más referencia a este control lo encuentras en la web de ICEfaces. -> http://component-showcase.icefaces.org/component-showcase/showcase.iface

Comentarios (20) Trackbacks (1)
  1. COMO HAGO PARA QUE LA BARRA VAYA MOSTRANDO QUE PROCEDIMIENTO LLEVA LA CARGA

    MUCHAS GRACIAS

    • Hola Hernan, si te fijas en el POST, hay un tag que se llama “outputProgress” el cual esta haciendo match con la variable “progreso” que también la puedes ver en el POST. Algunas veces, esta carga ocurre muy rápido por lo que muchas veces no se nota tanto. Saludos!

  2. que onda aqui checando tus tutoriales muy buenos por cierto, ya utilice el de paginado pero este no me funciona me sale un error espero y me puedas ayudar el error es este:
    facesContext.getViewNumber

  3. Hola muy buenas las tutoriales.. pero tengo una consulta como es el tema con la clase inputFile yo tengo referenciado todos jars de icefaces 2.0 el liberado full…..pero no encuentro la clase inputfile si me pudieran ayudar o guiar con eso muchas gracias
    A y otra cosa ahora en esta nueva version 2.0 ya no esta el <ice:inputFile ahora es <ace:fileEntry
    es lo mismo para la progressbar??
    Felicitaciones por la pagina!!

    • Hola Leonardo, en primer lugar las disculpas del caso por la respuesta reciente.
      Te comento que para la nueva versión de Icefaces 2.0. Estamos creando los nuevos post actualizados.
      Es cierto que existen muchos cambios los cuales publicaremos muy pronto.

      Saludos y gracias por seguir el blog.

      Éxitos!

    • Hola Leonardo, te comento que pronto estaremos publicando los post de ICEfaces con la versión 2.0
      que ha sido liberada.
      Sigue Kamlov, saludos coordiales!

  4. Hola,

    como se podria eliminar el archivo subido del directorio donde lo sube una vez que lo has utilizado y ya no lo necesitas.

    Saludos y gracias!!

    • Hola Javier, lo que tienes que hacer es crear un archivo tipo ‘Fyle’ el cual lo creas con la ruta donde se encuentra tu archivo.
      Luego de eso, usas la función delete del archivo fyle creado.

      Ejm:
      String sDirectorio = “c:\\directorio”;
      File f = new File(sDirectorio);
      f.delete();

      Saludos y sigue en contacto con kamlov. Pronto habrá novedades.

  5. hola… muy buen articulo..

    pero puedes actualizarlo ya que en la version 2.0 de Icefaces ya no existe el . Dentro los componentes avanzados desarrollados en esta version esta el . Puedes hablar acerca de este componente?

    Gracias

    SALUDOS

    • Hola Marlon, gracias por participar en el blog. Justo te comento que pronto estaremos lanzando los artículos de ICEfaces para
      la versión 2.0. No te preocupes por eso, sigue interactuando con nosotros en el blog.

      Muchas Gracias por tus comentatios.

    • Hola Marlon, te comento que muy pronto nuestros artículos serán actualizados con la versión 2.0
      Gracias por seguir el blog, saludos coordiales.

  6. Hola ! con respeto a los botones “Ejecutar” y “Cancelar” que metodos ejecutan respectivamente?? me queda una duda al respecto. Saludos y muy buen blog, espero que la comunidad Kamlov siga creciendo

    • Hola Roberto, gracias por escribirnos. Te comento, el botón ejecutar
      hace un llamado a la función que continüa el flujo de la aplicación, mas
      no interviene en el proceso de la carga del archivo. Como tenemos el
      “autoUpload” en “true”, la carga del archivo físico se realiza de manera automática.
      Con los parámetros que puedas sacar de este proceso como : “ruta” puede trabajar
      con eso de la manera que creas conveniente.

      Saludos coordiales, escríbenos cualquier otra consulta y sigue visitando el blog.

      Larry

  7. Hola!! buen trabajo Larry, una pregunta, no soy capaz de cambiarle el nombre al fichero que subo para que en el servidor se guarde de la manera que yo quiero. He probado con el método renameTo() y nada. Se te ocurre algo?

    Gracias

    • Esta bien con renameTo(), debería funcionar. Sin embargo, muchas veces pasa que no tenemos permisos
      sobre la carpeta o archivo que queremos cambiar. Revisa eso, sino me envias o escribes al mail para revisarlo
      juntos.

      Saludos!

  8. Hola… estoy utilizando icefaces 1.8 debido a que estoy “updateando” una aplicación anterior.
    necesitaba este componente sencillamente explicado y aquí lo encontré, así que muchas gracias.

    tengo una duda.. necesito elegir el directorio donde se subirá el archivo.. como puedo hacerlo???..

    saludos!

    • debes poner el atributo uploadDirectory=”./upload/” dentro del tag <ice:inputfile, dentro de las comillas especificas la ruta donde subiras los archivos, saludos!!


Deja un comentario