[Struts 1.x] Problema Download de Arquivo (conteúdo com lixo)

1 resposta
rbamartins

Pessoal,

estou desde ontem com problema em uma funcionalidade.

É o seguinte:

1 - Abro um popup com um componente de upload;

2 - Faço o Upload de um arquivo txt, leios seus campos e escrevo as inconsistências em um StringBuffer;

> Até aqui tudo certinho

3 - Com esse conteúdo das inconsistências em um StringBuffer, faço uma chamada ao execute do Struts, passo o StringBuffer e faço com que abra uma janela de download do arquivo em formato .txt com esse conteúdo.

public ActionForward execute(ActionMapping mapping, ActionForm form,   
			 HttpServletRequest request, HttpServletResponse response, StringBuffer textoARquivoLog, FormFile formFile) throws Exception {  
		 		
                //escrevo o contéudo em um array de byte 
		byte[] fileData = textoARquivoLog.toString().getBytes();

                //seto o contentType com o tipo de arquivo a ser gerado
		response.setContentType("application/txt");  

                //seto o header com o nome do arquivo a ser gerado
		response.setHeader("Content-disposition", "attachment; filename=" + formFile.getFileName());

	        //escrevo no outputStream o contéudo do array de byte
		response.getOutputStream().write(fileData);  

                //disparo
		response.getOutputStream().flush();
					            
		return null;
		
	}

Quando executo o seguinte código me ocorre o seguinte problema:
-Aparentemente estava tudo certo, mas além do contéudo que eu mandei escrever através do array de byte o arquivo que foi feito o download possui ao final todo o html da página.

Alguém sabe o que estou errando?
Já procurei no google, mas não encontrei uma solução ainda.

Abraços e bom dia a todos.

1 Resposta

rbamartins

Galera, tudo bom?

Consegui resolver criando uma Servlet.

Na minha Action retirei o override do EXECUTE e o processamento que fazia ali passei a fazer no SERVICE da Servlet.

Se alguém precisar eu posto o código aqui.

Abraços

Criado 5 de novembro de 2009
Ultima resposta 5 de nov. de 2009
Respostas 1
Participantes 1