Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
descargar archivos
Enviado por marypaz el día 23 de febrero de 2006
Hola a todos.....quisiera saber como hago para permitir descargar archivos que no son .zip desde una página, lo que sucede es que en la aplicación un usuario solicita generar unos archivos sobre información almacenada en la base de datos y luego debe poder descargarlos a su equipo, el generarlos no es problema el problema es como le permito descaergarlos si con hipervinculos lo que hace es que los abre en la página cosa que yo se no sucede con los .zip...........por fa\' ayudenme, me urge encontrar la solución
Para logra eso utiliza un codigo como este en el JSP, este no deve devolver nada mas:
FileInputStream archivo = new FileInputStream(Pathdelarchivo);
int longitud = archivo.available()
byte[] datos = new byte[longitud];
archivo.read(datos);
archivo.close();
response.setContentType("application/octet-stream"); // Aqui le dices que lo que viene es un OctectStream para que no abra ninguna aplicación
response.setHeader("Content-Disposition","attachment;filename = pathdelarchivo,size=longitud"); //Verifica la sintaxis no lo recuerdo exactamente,estos son los datos que aparecen en el cuadro de dialogo de descarga de archivos en el browser
oye resulta que el response no tiene ninguno de estos metodos que mencionas y pues al correr el jsp me salen errores.
Yo intente con obtener un ServletOutputStream con: response.getServletOutputStream(); por que es que este si tiene los 3 metodos que mencionas, sin embargo tampoco funciono, porque el error entonces dice:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
response.write(datos);
response.flush();
response.close();
Por fa.....que debo hacer, ya no se me ocurre que.....ayudame
Enviado por No funciona - corrección el día 24 de febrero de 2006
oye resulta que el response no tiene ninguno de estos metodos que mencionas:
response.write(datos);
response.flush();
response.close();
y pues al correr el jsp me salen errores.
Yo intente con obtener un ServletOutputStream con: response.getServletOutputStream(); por que es que este si tiene los 3 metodos que mencionas, sin embargo tampoco funciono, porque el error entonces dice:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
Por fa.....que debo hacer, ya no se me ocurre que.....ayudame
Enviado por aljuarizmi el día 2 de noviembre de 2007
Mira he encontrado algo de codigo, y como dices response no tiene esos metodos por eso te sale el error...ahi te va el codigo que encontre:
<%
try
{
String nFile = \"l2.txt\";
FileInputStream archivo = new FileInputStream(\"C:/\"+nFile);
int longitud = archivo.available();
byte[] datos = new byte[longitud];
archivo.read(datos);
archivo.close();