Inicio > Java, JSF, NetBeans > Descargar un archivo .XLS o .PDF con JSF

Descargar un archivo .XLS o .PDF con JSF

Hola había tenido problemas al tratar de descargar un archivo desde el servidor, para que sea visualizado en los computadores clientes del sistema usando JSF, pero buscando un poco por allí pude encontrar como hacerlo, este método sirve para descargar archivos *.XLS y *.PDF con los que he probado, pero me imagino que debe funcionar para cualquier tipo de archivo, lo importante es reconocer que MIME Type tiene este archivo eso lo podremos encontrar en esta página.

File ficheroXLS = new File(strPathXLS);
FacesContext ctx = FacesContext.getCurrentInstance();
FileInputStream fis = new FileInputStream(ficheroXLS);
byte[] bytes = new byte[1000];
int read = 0;

if (!ctx.getResponseComplete()) {
   String fileName = ficheroXLS.getName();
   String contentType = "application/vnd.ms-excel";
   //String contentType = "application/pdf";
   HttpServletResponse response =
   (HttpServletResponse) ctx.getExternalContext().getResponse();

   response.setContentType(contentType);

   response.setHeader("Content-Disposition",
                      "attachment;filename=\"" + fileName + "\"");

   ServletOutputStream out = response.getOutputStream();

   while ((read = fis.read(bytes)) != -1) {
        out.write(bytes, 0, read);
   }

   out.flush();
   out.close();
   System.out.println("\nDescargado\n");
   ctx.responseComplete();
}

Saludos y espero que sea de utilidad para ustedes…

Categorías:Java, JSF, NetBeans Etiquetas:
  1. Yago Fernández
    octubre 13, 2009 a las 10:11 am | #1

    Si además de abrir el pdf se quisiese redireccionar a otra página, ¿cómo se podría hacer?.
    Probé de varias formas, jsf, jtld, javascript, …, pero el responseComplete no hay manera.

  2. jroge
    octubre 28, 2011 a las 8:07 pm | #2

    como hago para abrir otra ventana y ver el pdf ???

  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 259 seguidores