代码之家  ›  专栏  ›  技术社区  ›  Eric

使用C向客户机“动态”写入一个文件#

  •  7
  • Eric  · 技术社区  · 15 年前

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

    3 回复  |  直到 15 年前
        1
  •  10
  •   Eric    15 年前

    经过一些搜索和尝试和错误,我开发了以下内容。这似乎完全符合要求。它应该很容易适应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();
    }
    
        2
  •  2
  •   Andrew Arace    15 年前

    我还可以建议,如果您有文本以外的内容,比如二进制,请使用Response.WriteBinary()方法

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

        3
  •  0
  •   Ian Jacobs    15 年前