使用C#将文件“即时”写入客户端

我正在使用C#和ASP.NET 2.5。

我想要一种简单的方法来动态生成“文件”(比如本例中的csv文件)并将其传输到客户端而不实际将其写入服务器文件系统。

经过一番搜索和反复试验,我开发了以下内容。 它似乎完全适合该法案。 它应该非常容易适应PHP或任何其他服务器端软件,因为它主要涉及修改标头。

protected void streamToResponse() { Response.Clear(); Response.AddHeader("content-disposition", "attachment; filename=testfile.csv"); Response.AddHeader("content-type", "text/csv"); using(StreamWriter writer = new StreamWriter(Response.OutputStream)) { writer.WriteLine("col1,col2,col3"); writer.WriteLine("1,2,3"); } Response.End(); } 

我还建议,如果你有文本以外的东西,比如二进制,你可以使用Response.WriteBinary()方法

我经常创建一个JPG,使用Bitmap.Save()方法将其写入MemoryStream,使用.ToArray()然后使用Response.WriteBinary()将MemoryStream转换为byte []数组。