我正在使用C#和ASP.NET 2.5。
我想要一种简单的方法来动态生成“文件”(比如说这个例子的csv文件)并将其传输到客户端而不实际将其写入服务器文件系统。
答案 0 :(得分:10)
经过一番搜索和反复试验后,我开发了以下内容。它似乎完全适合该法案。它应该非常容易适应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();
}
答案 1 :(得分:2)
我可以建议,如果你有文本以外的东西,比如二进制,你可以使用Response.WriteBinary()方法
我经常创建一个JPG,使用Bitmap.Save()方法将其写入MemoryStream,使用.ToArray()将MemoryStream转换为byte []数组,然后将Response.WriteBinary()转换为阵列。
答案 2 :(得分:0)
使用MemoryStream类:
http://msdn.microsoft.com/en-us/library/system.io.memorystream.aspx