2009-02-17 105 views
1

有沒有什麼辦法讓StreamWriter將文件(本例中是一個.txt文件)輸出到用戶,並且可以選擇打開/保存而不需要實際將文件寫入磁盤?如果沒有保存,它將基本消失。從StreamWriter輸出.txt文件而不寫入磁盤?

我要找的

HttpContext.Current.Response.TransmitFile(file); 

,但相同的功能,而無需任何保存到磁盤。謝謝!

回答

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

我爲一個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(); 
     } 
1

或使用Response.BinaryWrite(字節[]);

Response.AppendHeader("Content-Disposition", @"Attachment; Filename=MyFile.txt");            
Response.ContentType = "plain/text";  
Response.BinaryWrite(textFileBytes); 

類似的東西應該工作。如果你有一個流中的文本文件,你可以很容易地得到它的字節[]。

編輯:請參閱上面的內容,但請明確更改ContentType。

相關問題