Categorías destacadas
programacion php    
Artículo
4
¡votar!

 Descargar mediante un Servlet archivos XLS y PDF sin abrirlos

A la hora de programar una aplicación que nos genere un archivo XLS o PDF en Java, por defecto siempre se abre antes de poder hacer la descargar.

Esto lo podemos modificar para evitar que se abra, sino que cuando se pulse en el enlace, directamente empiece la descarga.

Vamos a crear un Servlet que nos permita hacer esta acción que hemos comentado. El código sería el siguiente.

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String paramUrl = request.getParameter("url"); //el URL enviado como parametro
        URL url = new URL(paramUrl);
        response.setContentType("application/octet-strem");
        response.setHeader("Content-Disposition", "attachment;filename='" + url.getFile() + "'"); //preparando el 'download' al navegador
        URLConnection connection = url.openConnection();
        InputStream in = connection.getInputStream(); //conectando para descargar
        OutputStream 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
        }
        in.close(); // y cerrando
        out.close(); // todo
    }


Lo que hacemos en el código es pasarle por Get la url donde está el archivo que hay que descargar. Una vez que lo recuperamos, en la respuesta indicamos el tipo de archivo que se mandará a la vez que vamos recuperando el contenido del mismo para su descarga.

Vía: Apuntesdejava
   
Publicado por:
angel carrero
Recomendar
a un amigo
Compartir
en redes
 
Comentarios


 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon