C# 使用C在服务器上创建下载文件而不保存#

C# 使用C在服务器上创建下载文件而不保存#,c#,asp.net,filestream,C#,Asp.net,Filestream,这是我的密码 我可以在不在服务器上进行物理保存的情况下执行此操作吗 谢谢 StringBuilder text = new StringBuilder(); string sFileName = "file.txt"; using (System.IO.StreamWriter SW = new System.IO.StreamWriter(Server.MapPath("docs\\" + sFileName), false, Encoding.ASCII)) { SW.WriteL

这是我的密码

我可以在不在服务器上进行物理保存的情况下执行此操作吗

谢谢

StringBuilder text = new StringBuilder();
string sFileName = "file.txt";

using (System.IO.StreamWriter SW = new System.IO.StreamWriter(Server.MapPath("docs\\" + sFileName), false, Encoding.ASCII))
{
    SW.WriteLine("test");
    SW.Close();
}

System.IO.FileStream fs = null;
fs = System.IO.File.Open(Server.MapPath("docs\\" + sFileName), System.IO.FileMode.Open);
byte[] btFile = new byte[fs.Length];
fs.Read(btFile, 0, Convert.ToInt32(fs.Length));
fs.Close();
Response.AddHeader("Content-disposition", "attachment; filename=" + sFileName);
Response.ContentType = "text/plain";
Response.BinaryWrite(btFile);
Response.End();

其中内容是字节[],包含要放入文件中的数据

写入MemoryStream而不是文件团队工作吗?有我的示例吗?谢谢非常感谢。但是“HttpResponseMessage”是.Net4.5类,我使用的是3.5…:(@inon,您可以使用.net 3.5中的Response类。只需使用Response.BinaryWrite(Content)来代替设置内容即可
var result = new HttpResponseMessage(HttpStatusCode.OK)
             {
                 Content = new ByteArrayContent(content)
             };

//a text file is actually an octet-stream (pdf, etc)
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
//we used attachment to force download
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                                           {
                                               FileName = "tets.txt"
                                           };