JSP (Java Server Page) - Descarga de un archivo xls

 
Vista:

Descarga de un archivo xls

Publicado por geobasis (6 intervenciones) el 31/08/2005 20:22:06
Hola a todos tengo el siguiente codigo en un jsp llamado informe.jsp:
java.io.FileInputStream archivo = new java.io.FileInputStream(reporte.xls);
int longitud = archivo.available();
byte [] datos = new byte [longitud];
archivo.read(datos);
archivo.close();
response.addHeader("Content-Disposition","attachment;filename=reporte.xls");
response.setContentType("application/msexcel");
response.setContentLength(longitud);
response.getOutputStream().write(datos);

response.getOutputStream().flush();
response.getOutputStream().close();

El problema que tengo es que en algunos browser aparece: Descargando el archivo informe.jsp, en otros funciona perfectamente apareciendo descargando reporte.xls.

Alguien sabe como obligar al browser a que muestre en este caso reporte.xls en lugar del nombre del jsp que se ejecuta en el servidor??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Descarga de un archivo xls

Publicado por mon (2 intervenciones) el 18/10/2005 20:49:23
Y cómo puedo hacerle para que se guarde el archivo en determinada ruta???
Por ejemplo en mi disco duro??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Descarga de un archivo xls

Publicado por Fernando (1 intervención) el 04/10/2007 14:11:15
Veo que esto esta consulta es muy antigua, sin embargo para nuevas personas que consulten esto, la solución simplemente consiste en agregar la siguiente linea:

response.setContentType("application/x-download");

Por lo tanto el codigo finalmente quedaría así:

java.io.FileInputStream archivo = new java.io.FileInputStream(reporte.xls);
int longitud = archivo.available();
byte [] datos = new byte [longitud];
archivo.read(datos);
archivo.close();
response.addHeader("Content-Disposition","attachment;filename=reporte.xls");
response.setContentType("application/msexcel");
response.setContentLength(longitud);
response.getOutputStream().write(datos);

response.getOutputStream().flush();
response.getOutputStream().close();

Saludos a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar