Foros del Web » Programación para mayores de 30 ;) » Java »

Descarga de archivos

Estas en el tema de Descarga de archivos en el foro de Java en Foros del Web. Buenas Gente! Estoy trabajando en un proyecto web y necesito hacer descarga de archivos. El tema es el siguiente: El usuario define un directorio (en ...
  #1 (permalink)  
Antiguo 28/07/2005, 08:52
 
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires (Argentina)
Mensajes: 36
Antigüedad: 19 años, 2 meses
Puntos: 0
Descarga de archivos

Buenas Gente!

Estoy trabajando en un proyecto web y necesito hacer descarga de archivos. El tema es el siguiente: El usuario define un directorio (en el web container) en donde dejará los archivos que se puedan descargar (manualmente). Los archivos, en este caso son .zip pero en principio podrían tener cualquier extensión y el problema sería siempre el mismo.
El punto es que, desde la aplicación necesito que quien navegue por la aplicación, y quiera descargar algún archivo en particular (desde el directorio definido) lo haga. La parte de la localización del archivo lo tengo resuelto, la única parte que me queda es mostrar el cuadro de descarga y que la aplicación descargue el archivo seleccionado.
Mi problema es saber por dónde comienzo. Si alguien ya se ha enfrentado con este tema y sabe cómo resolverlo por favor, me serviría mucho. En este aspecto, cualquier información será bienvenida, ya sea algún link interesante, algún ejemplo, cualquier duda y/o consulta al respecto. Desde ya muchas gracias.

Javier.
  #2 (permalink)  
Antiguo 01/08/2005, 07:56
Avatar de Ani Alamo  
Fecha de Ingreso: julio-2005
Mensajes: 35
Antigüedad: 18 años, 9 meses
Puntos: 1
Podrás adaptar este código para que desde un Servlet puedas abrir un fichero de extensión cualesquiera, y dependiendo de la extensión de este fichero .DOC, .PDF, .ZIP... etc podrás saber que tipo MIME tiene.....


private void fncDownloadFichero (HttpServletRequest request,
HttpServletResponse response, String file) throws Exception
{
HttpSession sesion = request.getSession();
String CONTENT_TYPE;
if (file.substring(file.length()-3) = "TXT") //SE VISUALIZA EL FICHERO EN EL NAVEGADOR
CONTENT_TYPE = "text/html";
else if (file.substring(file.length()-3) = "DOC") //SE VISUALIZA EL FICHERO USANDO MS-WORD
CONTENT_TYPE = "application/msword";
else if (file.substring(file.length()-3) = "ZIP") // SE DESCARGA USANDO UNA VENTANA QUE PREGUNTE AL USUARIO SI DESEA BAJAR A DISCO o ... USANDO WINZIP
CONTENT_TYPE = "application/x-zip";
else if (file.substring(file.length()-3) = "JPG") //SE DESCARGA USANDO UN VISOR DE IMAGENES
CONTENT_TYPE = "image/jpeg";
else if (file.substring(file.length()-3) = "GIF") // SE DESCARGA USANDO UN VISOR DE IMAGENES
CONTENT_TYPE = "image/gif";
else //SE DESCARGA USANDO UNA VENTANA DE DIÁLOGO... ABRIR...GUARDAR...
CONTENT_TYPE = "application/octet-stream";

response.setContentType(CONTENT_TYPE);
OutputStream sout = response.getOutputStream();
InputStream sin = new FileInputStream(file);
int n = sin.available();
sout.write(cabMime(200, "OK", CONTENT_TYPE, n));
byte buf[] = new byte[buffer];
while( ( n = sin.read( buf ) ) >= 0 )
sout.write( buf,0,n );
sin.close();
}


public static byte cabMime(int codigo,String mensaje,String ct, int tam )[]
{
Date d = new Date();
return( aBytes( "HTTP/1.0 "+codigo+" "+mensaje+CRLF+
"Date: "+d.toGMTString()+CRLF+
"Server: Java/"+version +CRLF+
"Content-type: "+ct+CRLF+
( tam > 0 ? "Content-length: "+tam+CRLF : "" )+CRLF ) );
}


Un saludo.
__________________

Ani Alamo Gómez de González


"Sin Dios no soy nada en este mundo, sin El nada puedo ser... ni las hojas de los árboles se mueven, sino es por su gran poder. Bendito seas Señor."

Última edición por Ani Alamo; 01/08/2005 a las 08:05
  #3 (permalink)  
Antiguo 01/08/2005, 09:57
 
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires (Argentina)
Mensajes: 36
Antigüedad: 19 años, 2 meses
Puntos: 0
Gracias por la respuesta. A decir verdad, luego de haber posteado la consulta, seguí investigando y pude resolver el problema. La respuesta se parece mucho a lo que describís aquí. De cualquier forma, hay cosas que no he tenido en cuenta y que sí aparecen en el ejemplo que posteás con lo cual, seguro que es de gran ayuda. Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:09.