Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sky D. Wolfwood

C#.NET: Criar arquivo texto em memória e disponibilizar para download

Recommended Posts

eae pessoal? blza?

 

Bom... meu problema é o seguinte. Preciso criar um arquivo texto com dados vindos do BD em C#. entretanto, por questões de segurança, o servidor do cliente não fornece permissões para gravação no disco. Então preciso criá-lo em memória e disponibilizar para download diretamente

 

if(IsPostBack){
           string txt = "line1";
           MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(txt));

           Response.Charset = "iso-8859-1";
           Response.ContentType = "application/octet-stream";
           Response.AddHeader("Content-Disposition:", "attachment; filename=Senhas.txt");
           ms.WriteTo(Context.Response.OutputStream);
           ms.Close();

           Response.Flush();
           Response.Clear();
           Response.End();
       }

 

Uso este codigo e está funcionando. Porem, a consulta ao BD que monta os dados a serem incluidos no txt é personalizavel e graças ao response.end parar a execução da pagina assim que remonto o filtro da consulta e clico novamente no botão para efetuar o download do arquivo nada acontece.

 

Sem o response.end o HTML da página vai junto para o .txt e com o response.end o arquivo só pode ser gerado uma única vez.

 

Se alguém puder ajudar agradeço desde já...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.