descargar Archivos en JSP

819 views
Skip to first unread message

Juan Añasco

unread,
Aug 4, 2006, 4:18:33 AM8/4/06
to jav...@googlegroups.com
Hola a todos!
Podría alguien ayudarme con el siguiente problema, porfavor:
TEngo archivos almacenados en BLOB en una base de datos Oracle, los cuales son extraídos sin problemas(actualmente los traspaso entre las capas de la aplicación como byte[]), sin embargo no sé como hacer una JSP que me permita descargarlos al cliente.
Me imagino que es un problema común....agradecería mucho un empujoncito


--
>>> Juan Francisco Añasco
-------->> 09-6794731 <<-----

"Quem diz muito que vai , não vai, Assim como não vai , não vem, Quem de dentro de si não sai Vai morrer sem amar ninguem"

"Chase after money and security and your heart will never unclench. Care about people's approval and you will be their prisoner"

Claudio Fernandez

unread,
Aug 4, 2006, 11:05:43 AM8/4/06
to jav...@googlegroups.com
Mejor hace un servlet para eso, que recorra el byte[] y lo valla
escribiendo en la response. Antes acordate de settearte en la
response los headers http relacionados con el tipo de archivo que
estas devolviendo, no me acuerdo cuales eran pero Google te va a
ayudar en unos minutitos. Si lo haces en un jsp quizas encuentres un
problema con el enconding, ademas de que un jsp no esta pensando para
hacer exactamente eso, asi que no lo recomiendo.

Saludos,
CF

jfinthemix

unread,
Aug 7, 2006, 6:59:43 PM8/7/06
to JavaSOS
Les muestro el código que hizo funcionar la descarga, por si a alguien
mas le pueda servir:
/* este codigo va en el servlet o Action (caso de usar STRUTS), aunque
no hay ningun problema en ponerlo en una JSP, dado que al fin y al cabo
también es un Servlet(comprobado)*/

byte[] b = usuarioLocal.getCurriculo(datosSes.getId());

ByteArrayOutputStream output = new ByteArrayOutputStream();
output.write(b,0,b.length);
//Aki supongo que el output le llea el archivo que
quieres enviar al cliente
response.setContentType("application/download");
response.setHeader("content-disposition", "attachment;
fileName=\"curriculo.doc\"");
response.setContentLength(output.size());

//Escribir el archivo en el response
OutputStream out = response.getOutputStream();
output.writeTo(out);
out.flush();
out.close();
return null;

Reply all
Reply to author
Forward
0 new messages