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

时间:2009-06-17 18:33:27

标签: c# asp.net

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

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

3 个答案:

答案 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)