Inquiridor
Stream Writer + Memory Stream

Pergunta
-
Bom dia amigos
Criei um sistema q gera um txt para o usuário mas no momento esta sendo salvo em um diretório.
estou tentando atraves do código abaixo fazer com que apareça em forma de download mas não funciona.
MemoryStream memStream = new MemoryStream();
ImpIr = new StreamWriter(memStream);
//dados do arquivo
impIr.Write("")......
//no final do arquivo
ImpIr.Flush();
StreamReader stream_reader = new StreamReader(memStream);
memStream.Seek(0, SeekOrigin.Begin);
return memStream;Rafael Soares Desenvolvedor Web (Java,.NET) Desenvolvedor Mobile(Windows Phone 7, Android)
Todas as Respostas
-
Bom dia!!
Você precisa adicionar os cabeçalhos no response para o browser fazer o download do arquivo, segue um exemplo:
string arquivo = Server.MapPath("nome do arquivo"); FileInfo info = new FileInfo(arquivo); Response.Clear(); Response.ContentType = "application/octet-stream"; Response.AddHeader("Accept-Header", info.Length.ToString()); Response.AddHeader("Content-Disposition", "attachment; filename=\"" + info.Name + "\""); Response.TransmitFile(info.FullName); Response.Flush();
Espero ter lhe ajudado!! Se lhe ajudou marque como resposta, pois assim essa thread ficará como respondida e ajudará outros usuários!! Obrigado!!Thiago Rogerio
www.thiagorogerio.com.br
thiagorogeriobr@hotmail.com- Sugerido como Resposta Paulo César Viana segunda-feira, 27 de fevereiro de 2012 15:53
-
-
Olá!
Seu aplicativo não é asp.net / c#?? Quais using você tem no code-behind?Thiago Rogerio
www.thiagorogerio.com.br
thiagorogeriobr@hotmail.com -
-
meu exemplo ficou assim seguindo oq vc disse
public static void ForceDownload(this HttpResponse Response, string virtualPath, string fileName)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.WriteFile(virtualPath);
Response.ContentType = "";
Response.End();
}
Rafael Soares Desenvolvedor Web
-
após ultimo ajuste.... ocorre uma exception de referencia null após p Response.clear()
string arquivo = HttpContext.Current.Server.MapPath("~/Impressão/texto.txt");
FileInfo info = new FileInfo(arquivo);
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Accept-Header", info.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + info.Name + "\"");
Response.TransmitFile(info.FullName);
Response.Flush();Rafael Soares Desenvolvedor Web