有没有办法获取StreamWriter并将文件(在本例中为.txt文件)输出给用户,并选择打开/保存而不实际将文件写入磁盘?如果它没有保存,它基本上会消失。
我正在寻找
的相同功能HttpContext.Current.Response.TransmitFile(file);
但无需将任何内容保存到磁盘。谢谢!
答案 0 :(得分:8)
尝试System.IO.MemoryStream
System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.IO.StreamWriter sw = new System.IO.StreamWriter(ms);
sw.Write("hello");
答案 1 :(得分:1)
我最近为XML文件做了这个,应该很容易适应
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.AppendHeader("content-disposition", "attachment; filename=myfile.xml");
Response.ContentType = "text/xml";
UTF8Encoding encoding = new UTF8Encoding();
Response.BinaryWrite(encoding.GetBytes("my string"));
Response.Flush();
Response.End();
}
答案 2 :(得分:1)
或使用Response.BinaryWrite(byte []);
Response.AppendHeader("Content-Disposition", @"Attachment; Filename=MyFile.txt");
Response.ContentType = "plain/text";
Response.BinaryWrite(textFileBytes);
这样的事情应该有用。如果您在流中有文本文件,则可以轻松地从中获取byte []。
编辑:见上文,但是忽略地改变了ContentType。