Tutoriais: Zipando arquivos através de uma requisição. Enviado por Segunda, novembro 11 @ 15:06:04 EDT por Error! Hyperlink reference not valid. http://www.portaljava.com/home/modules.php?name=Search&query=&topic=2Através de uma requisição URL, podemos zipar o conteúdo adquirido pela mesma. Exemplo: Vamos requisitar o nosso portal, www.portaljava.com. O resultado será um arquivo z contendo o HTML da página inicial, claro sem as imagens, apenas o conteúdo do HTML! Se você não conhece nada sobre servlet, ou tem apenas uma vaga idéia, sugerimos que leia o tutorial http://java.sun.com/products/servlet/. O código abaixo mostra como você pode fazer isso! package com.portaljava.util.zipfiles; //************************************************************************** /** * @author * ---------------------------* Dalton Milkvicz de Camargo * [email protected] * www.portaljava.com * ---------------------------* Este servlet pega o contexto de uma requisição URL zip e envia para você. * Obs: Somente o HTML será enviado as imagens não. * */ //************************************************************************** import java.io.*; import import import import import javax.servlet.*; javax.servlet.http.*; java.util.zip.*; java.net.*; java.util.*; public class ZipFiles extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { byte b[]=new byte[300000]; URL url; String temp; ByteArrayOutputStream bout=new ByteArrayOutputStream(); ZipOutputStream zout=new ZipOutputStream(bout); ServletOutputStream out = res.getOutputStream(); ServletContext servletContext = getServletContext(); if ((temp=req.getParameter("url"))!=null) { try { url=new URL(temp); URLConnection uc = url.openConnection(); DataInputStream input = new DataInputStream(uc.getInputStream()); int numRead=0; int size=0; while (numRead != -1) { numRead = input.read(b,size,20000); size+=numRead; } zout.putNextEntry(new ZipEntry("portaljava.html")); zout.write(b,0,size); zout.closeEntry(); zout.finish(); String zip=bout.toString(); res.setContentType("application/zip"); res.setHeader("Content-Disposition","inline; filename=pjOutput.zip;"); out.println(zip); out.flush(); } catch (Exception e) { res.setContentType("text/html"); out.println("< html>< head>< title>Error< /title>< /head>"); out.println("< body>< b>"); out.println("Um erro aconteceu quando estava processando "+temp+"< br>"); out.println("Aqui está a exception: < br>"+e+"< br>"); e.printStackTrace(new PrintWriter(out)); out.println("< /body>"); out.println("< /html>"); } } } } Baixar o arquivo de exemplo acima: http://www.portaljava.com/home/modules.php?name=Downloads&d_op=getit&lid=163 Bons Códigos! Dalton Milkvicz [email protected] www.portaljava.com