Estoy haciendo una página en jsp. Lo que quiero es que al pulsar en un botón de la página, se descarge un archivo.
El método que ejecuta el botón en el Bean es el siguiente:
Código:
Cuando yo pulso en el botón, se abre el diálogo de descarga, y sí comienza a descargarse el archivo.public String downloadFile () throws FileNotFoundException, IOException { FacesContext context = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse(); System.out.println ("Descargando archivo==>"+rutaArchivo); response.setContentType("APPLICATION/OCTET-STREAM"); String disHeader = "Attachment;Filename=\"myFile.txt\""; response.setHeader("Content-Disposition", disHeader); // transfer the file byte-by-byte to the response object File fileToDownload = new File(rutaArchivo); FileInputStream fileInputStream = new FileInputStream(fileToDownload); int i; while ((i=fileInputStream.read())!=-1) { response.getOutputStream().write(i); } fileInputStream.close(); response.getOutputStream().close(); System.out.println ("fin descarga archivo"); return "success"; }
El problema está en que al abrir el archivo, no tiene el contenido que debiera tener, sino que su contenido es el codigo html de la jsp donde se encuentra el botón que ejecuta ese método.
¿Alguien sabe cual es la solución?
Saludos y gracias