0

问题很简单,我理解有些毫无意义,但仍然......

当然,数据库在服务器上,我需要一个操作,当启动时从数据库中抓取该文件并将其保存到我的AppSettings["Active"]配置属性中的文件夹中。

基本上,

public ActionResult Activate(int id)
{
    Project project = db.Projects.Find(id);

    var activeProjectData = project.XML; // project.XML returns byte[] type
    //For download (not in this method of course) i'm using something like return File(activeProjectData, "text/xml"); and that works ok

}

现在我想将该文件保存到AppSettings["Active"]路径。不知道该怎么做。我试过使用System.IO.File.Create(),但结果不太好。

任何帮助表示赞赏。

4

2 回答 2

3

只需创建一个 FileStream 并使用它来写入数据:

string fileName = ConfigurationManager.AppSettings["Active"];
using(var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write) )
{
    fs.Write(project.XML, 0, project.XML.Length);
}

如果你不需要更多的控制,类上有一个简单的辅助方法File

File.WriteAllBytes(fileName, project.XML);
于 2012-10-09T17:17:05.887 回答
0

您需要使用 FileStream

SqlCommand ("select fileBin from SomeTable", connection);
byte[] buffer = (byte[]) command.ExecuteScalar ();
connection.Close();
FileStream fs = new FileStream(@"C:\filename.pdf", FileMode.Create);
fs.Write(buffer, 0, buffer.Length);
fs.Close();
于 2012-10-09T17:19:05.627 回答