PessoALL,
 
Estou com um problema e, quem sabe alguém pode me ajudar...
 
Tenho um aplicativo faz upload de arquivos e os grava em um banco de dados. Para reexibí-los, mais tarde, tenho uma página com um link do tipo:
 
 
E mando abrir este link em outra janela. Nesta página JSP (caa_exibir_anexo.jsp), faço uma pesquisa no banco de dados por este anexo, e, quando o encontro, faço o seguinte:
 
        response.setContentType(anexo.getMimeType());
        ServletOutputStream so = response.getOutputStream();
        ByteArrayOutputStream b = anexo.getArquivo();
        so.write(b.toByteArray(), 0, b.size());
        so.flush();
E aí, o arquivo se abre nesta nova janela. Desde que seja um .jpg, .doc, .xls e mais alguns. Se for um outro arquivo (.zip, por exemplo), surge, como era de se esperar, a caixa de diálogo do navegador, perguntando se quero 'Abrir' ou 'Salvar' o arquivo. Mas, quando escolho 'Salvar' e se abre a janela para escolher o nome e o lugar onde salvar o arquivo, o nome que surge é 'caa_exibir_anexo.jsp', ao invés do nome real do arquivo (meuarquivo.zip, por exemplo, que está em armazenado no atributo anexo.getNomeArquivo()). Isto é extremamente ruim, pois o arquivo não vem nem com o nome nem com a extensão esperada, tendo que ser renomeado antes de ser aberto.
 
Alguém sabe me dizer como posso proceder para fazer o navegador entender que o arquivo que eventualmente será salvo tem outro nome ???
 
Já tentei algumas combinações com:
 
        response.setHeader("Name", "MEUARQUIVO.ZIP");
 
e algumas outras, mas não obtive sucesso.
 
Lembro que, por determinação de projeto, não pode ser um servlet. Tem que ser JSP.
 
Alguém tem uma luz ??????
 
[]s
 
Oscar
 
 

Responder a