如何在C#中创建,编写然后返回文件而不将其保存到磁盘

时间:2010-08-13 05:34:06

标签: c# asp.net-mvc

我正在开发一个ASP.NET MVC应用程序,其中包含服务器返回rdp文件的按钮,该文件由我的业务层创建。

我想要的是能够让服务器创建此rdp文件,然后提供它,而不将其存储在磁盘上。

最好的方法是什么?

感谢。

2 个答案:

答案 0 :(得分:7)

您可以在MemoryStream中创建文件,然后使用Response.Write提供服务 另外,不要忘记将ContentType设置为“application / rdp”

修改:正如Danny Chen建议你可以在控制器类中使用FileStreamResult

Stream stream = new MemoryStream();
//Fill the stream here
return new FileStreamResult(stream,"application/rdp") 

答案 1 :(得分:1)

我会使用MemoryStream对象将数据写入内存缓冲区。

但这完全取决于您的业务层,如果它足够灵活,可以将数据输出到任意流。

或者,如果在类Unix机器上,使用ramfs挂载文件夹并将其用于临时存储,则文件存储在内存中。但我猜你在Linux / BSD中使用ASP.NET的可能性很小。