Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/01/2011, 02:26
Avatar de dani_demons
dani_demons
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: crear fichero para descargar

Aquí tienes el código para realizar el almacenamiento temporal de un fichero en local, y la posterior construcción del mismo lanzándosela al usuario.

Este método sirve para servir recursos de ips privadas que no son accesibles desde Internet.

Código:
private void servirRecurso(HttpServletResponse response, String url) throws IOException {

      InputStream in = null;
      OutputStream out = null;
      try {
         URL urlObjeto = new URL(url);
         response.setContentType("application/octet-stream");
         response.setHeader("Content-Disposition", "attachment;filename=" + urlObjeto.getFile());
         URLConnection connection = urlObjeto.openConnection();
         in = connection.getInputStream(); //conectando para descargar
         out = new DataOutputStream(response.getOutputStream());
         byte[] buffer = new byte[BUFFER_SIZE];
         int sizeRead = 0;
         while ((sizeRead = in.read(buffer)) >= 0) { //leyendo del host
            out.write(buffer, 0, sizeRead); //escribiendo para el navegador
         }
      } finally {
         in.close(); // y cerrando
         out.close(); // todo
      }

   }
Espero que te sirva de ayuda.