Caixa de dialogo para Salvar Arquivo

5 respostas
G

Estou fazendo uma aplicação em Struts 1 que precisa salvar os dados de uma tabela do Banco de Dados em um arquivo txt.

Estou utilizando a tag html:file mas aparece só a Caixa de Dialogo para Abrir o Arquivo.

Alguem sabe como eu faço para chamar a Caixa de Dialogo para Salvar o Arquivo?

5 Respostas

lcegatti

Amigão, acho que vc está confundindo.

Pelo que entendi, nesse seu processo vc faz a consulta em sua tabela, e o retorno vc pode escrever no arquivo instanciando um objeto File e escrevendo, por exemplo, com FileWriter.

File arquivoEscrever = new File("meuArquivo.txt");
FileWriter writer = new FileWriter(arquivoEscrever);

writer.write("CONTEUDO PARA O ARQUIVO");

A tag, <html:file é utilizada para upload de arquivo apenas. :thumbup:

[]'s

G

Eu ja estou utilizando a classe File e FileWriter para escrever no arquivo!

O que eu quero é uma caixa de dialogo para que o usuário do sitema possa escolher o caminho no disco de memória e o nome do arquivo para salvar!

Seria o equivalente ao FileChooser com o método showSaveDialog do Swing!

lcegatti

aa entendi … o que pode-se fazer é disponibilizar um botão onde ele chamaria sua action, nessa action vc escreveria o conteúdo do arquivo na response(com nome, extensão e tudo mais, os content-type certo), e daria um return null, no browser aparecia a janela para o usuário salvar o arquivo em disco.

[]'s

G

Fiquei meio perdido na parte de dar return null! Você teria um exemplo de como se faz isso?

lcegatti

Seria mais ou menos assim:

response.setHeader("Content-disposition", "attachment; filename="seuArquivo.txt"); 
response.getOutputStream().write("CONTEUDO ARQUIVO");
response.getOutputStream().flush();

E ao invés de retornar um MappingForward, vc retorna null para o método de sua action:

//return mapping.findForward("suaPagina.jsp");
return null;

Pq ai nesse caso o Struts não tentará alterar sua response.

[]'s

Criado 11 de julho de 2008
Ultima resposta 11 de jul. de 2008
Respostas 5
Participantes 2