miércoles, 18 de agosto de 2010

Descargar XLS y PDF sin abrirlos en el navegador (versión Servlet)


Anteriormente hice un post de cómo "Descargar XLS y PDF sin abrirlos en el navegador" pero fue realizado con PHP. Ahora les traigo el mismo ejemplo pero usando Servlet



Para realizar esto, es necesario tener un Servlet que reciba como parametro el url que le indica dónde está el archivo a mostrar para descargar. En este ejemplo he preparado para que descargue desde cualquier host.

    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


    }


El proyecto utilizado para este ejemplo se encuentra aquí:
http://kenai.com/projects/apuntes/downloads/download/ejemplos%252Fweb%252FDescargarWebApp.tar.gz


No hay comentarios.:

Publicar un comentario

Si quieres hacer una pregunta más específica, hazla en los foros que tenemos habilitados en Google Groups


Ah! solo se permiten comentarios de usuarios registrados. Si tienes OpenID, bienvenido! Puedes obtener su OpenID, aquí: http://openid.net/