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é.
Estrela,
De uma olhada no pacote java.util.zip
Acredito que irá ajudar.
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();
Olá, pesquisando mais um pouco na internet encontrei o seguinte exemplo:
[code]
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©;
}
out.flush();
out.close();
fileToDownload.close();[/code]
no site da sun, e resolveu minha dúvida, estava faltando eu verificar se o arquivo havia acabado ou não. Obrigada rapazes!!!
Até.