Tutoriais: Zipando arquivos através de uma requisição

Propaganda
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
Download