Como fazer para enviar um arquivo zip para cliente - resolvido

3 respostas
estrela

Olá, estou com a seguinte dúvida: eu estou precisando enviar como resposta do meu servlet um arquivo zip para o cliente, para que ele possa fazer download automático deste arquivo.
Como faço para enviar o caminho completo, de maneira que o cliente receba este response e faça o download?

Andei pesquisando nos foruns, e vi que é possível fazer algo com o response.setContentType, mas não estou conseguindo enteder e fazer o redirecionamento, se alguém puder me ajudar, agradeço.

Até.

3 Respostas

fsquadro

Estrela,

De uma olhada no pacote java.util.zip

Acredito que irá ajudar.

A

Estrela, você não pode mandar o caminho do seu zip simplesmente, você tem que carregar o arquivo e transformá-lo num array de bytes. Feito isso, para direcionar o download é mais ou menos assim:

response.setHeader("Content-Disposition", "attachment;filename=Temp.zip"); 	response.setContentType("application/zip");
response.setContentLength(bytes.length);
response.getOutputStream().write(bytes, 0, bytes.length);
response.getOutputStream().flush();
response.getOutputStream().close();
estrela

Olá, pesquisando mais um pouco na internet encontrei o seguinte exemplo:

String filePath = "C:/plik.zip";
String fileName = "plik.zip";

FileInputStream fileToDownload = new FileInputStream(filePath);
ServletOutputStream out = response.getOutputStream();

response.setContentType("application/zip");
response.setHeader("Content-Disposition","attachment; filename="+fileName);
response.setContentLength(fileToDownload.available());

int c;
while((c=fileToDownload.read()) != -1){
out.write(c);
}
out.flush();
out.close();
fileToDownload.close();

no site da sun, e resolveu minha dúvida, estava faltando eu verificar se o arquivo havia acabado ou não. Obrigada rapazes!!!
Até.

Criado 30 de maio de 2007
Ultima resposta 30 de mai. de 2007
Respostas 3
Participantes 3