luciene.silva 5 de jul. de 2007
Eu não consegui entender o seu problema…
Explique melhor a sua aplicação.
marciobarroso 5 de jul. de 2007
e Ae
Você precisa mudar o content-type da response para content-type=“application/zip”
[]'s
mcbarsotti 6 de jul. de 2007
Pessoal, consegui resolver ontem esse problema, mas só tive tempo de postar agora
a quem interessar, segue a solução:
public static void geraDownload ( HttpServletResponse response , String caminhoArquivo , String nomeArquivo ){
try {
File arquivo = new File ( caminhoArquivo . endsWith ( "/" ) ? caminhoArquivo + nomeArquivo : caminhoArquivo + "/" + nomeArquivo );
response . setContentType ( DownloadUtil . getTipoConteudo ( nomeArquivo ));
response . setHeader ( "Content-disposition" , "attachment;filename=" + URLEncoder . encode ( nomeArquivo , "utf-8" ));
InputStream in = new FileInputStream ( arquivo );
ServletOutputStream out = response . getOutputStream ();
byte [] buffer = new byte [ ( int ) arquivo . length () ] ;
int nLidos ;
while (( nLidos = in . read ( buffer )) >= 0 ) {
out . write ( buffer , 0 , nLidos );
}
out . flush ();
out . close ();
in . close ();
} catch ( IOException e ) {
e . printStackTrace ();
}
}
Giulliano 6 de jul. de 2007
Eu acho que vc poderia fazer isso através de html mesmo…em todo caso ficou boa a servlet
rbamartins 6 de jul. de 2007
amigao… eu ia começar a implementar isso agora. Fiz uma tela de Upload de arquivos e agora ia tentar fazer com que os arquivos ficassem disponiveis para download.
abraços
mcbarsotti 6 de jul. de 2007
já que vc vai fazer um para download, usa esse método tb, ele gera alguns mymi types (acho q é assim que escreve)…
public static String getTipoConteudo ( String arquivo ){
String arquivoTemp = arquivo . toLowerCase ();
String retorno = "" ;
if ( arquivoTemp . endsWith ( "txt" ) || arquivoTemp . endsWith ( "cbl" ))
retorno = "text/plain" ;
else if ( arquivoTemp . endsWith ( "gif" ))
retorno = "image/gif" ;
else if ( arquivoTemp . endsWith ( "doc" ))
retorno = "application/msword" ;
else if ( arquivoTemp . endsWith ( "xls" ))
retorno = "application/vnd.ms-excel" ;
else if ( arquivoTemp . endsWith ( "zip" ))
retorno = "application/zip" ;
else if ( arquivoTemp . endsWith ( "rar" ))
retorno = "application/rar" ;
else if ( arquivoTemp . endsWith ( "ppt" ))
retorno = "application/vnd.ms-powerpoint" ;
else if ( arquivoTemp . endsWith ( "xls" ))
retorno = "application/vnd.ms-excel" ;
else if ( arquivoTemp . endsWith ( "html" ) || arquivoTemp . endsWith ( "html" ))
retorno = "text/html" ;
else if ( arquivoTemp . endsWith ( "tif" ) || arquivoTemp . endsWith ( "tiff" ))
retorno = "image/tiff" ;
else if ( arquivoTemp . endsWith ( "xls" ))
retorno = "application/pdf" ;
else
retorno = "application/x-msdownload" ;
return retorno ;
}
abraços 8)