C# 如何将文件从数据库保存到服务器

C# 如何将文件从数据库保存到服务器,c#,asp.net-mvc,C#,Asp.net Mvc,这个问题很简单,我知道有些毫无意义,但仍然 当然,数据库在服务器上,我需要一个操作,该操作将在启动时从数据库中抓取该文件并将其保存到我的AppSettings[“Active”]configuration属性中的文件夹中 基本上 public ActionResult Activate(int id) { Project project = db.Projects.Find(id); var activeProjectData = project.XML; // project

这个问题很简单,我知道有些毫无意义,但仍然

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

基本上

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”]
path。我不知道该怎么办。我尝试过使用
System.IO.File.Create()
,但结果不太好


非常感谢您的帮助。

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

string fileName = ConfigurationManager.AppSettings["Active"];
using(var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write) )
{
    fs.Write(project.XML, 0, project.XML.Length);
}
如果您不需要更多的控制,则
文件
类上有一个:

File.WriteAllBytes(fileName, project.XML);

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

string fileName = ConfigurationManager.AppSettings["Active"];
using(var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write) )
{
    fs.Write(project.XML, 0, project.XML.Length);
}
如果您不需要更多的控制,则
文件
类上有一个:

File.WriteAllBytes(fileName, project.XML);

您需要使用文件流

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();

您需要使用文件流

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();

数据库中的文件?您的意思是文件以二进制形式存储在数据库中作为数据吗?是的,文件在数据库中作为二进制文件。来自数据库的文件?你的意思是文件以二进制形式存储在数据库中作为数据吗?是的,文件在数据库中作为二进制形式存储。这看起来很有希望,我知道这是
file
class上的东西。。。就是不能当场弄明白。我会试试的,谢谢。我会使用
File.OpenWrite(fileName)
而不是手动创建文件流,它基本上只包装
新文件流
,但看起来更干净。:)我用了
File.writealBytes()
很有魅力,而且看起来很干净:)谢谢你!这看起来很有希望,我知道这是
文件
类中的内容。。。就是不能当场弄明白。我会试试的,谢谢。我会使用
File.OpenWrite(fileName)
而不是手动创建文件流,它基本上只包装
新文件流
,但看起来更干净。:)我用了
File.writealBytes()
很有魅力,而且看起来很干净:)谢谢你!