关于C#:使用带有实体框架的.NET MVC3将文件存储在SQL Server数据库中

Store file in SQL Server database using .Net MVC3 with Entity Framework

我想在SQL Server中存储和检索文件。

我的基础设施是:

  • SQL Server 2008
  • 带有实体框架的C.NET MVC3。

请帮助我了解必须在SQL Server和C文件中使用的数据类型。如果可能,在不刷新页面的情况下存储文件,这将更接近我的要求。

谢谢。


这里有一些"示例代码";)我省略了大量声明、验证等,因此代码不会按原样运行,但是您应该能够理解这个想法。如果不想刷新页面,请使用Ajax类型的请求提交文件表单。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// model
public class UploadedImage
{
    public int UploadedImageID { get; set; }
    public string ContentType { get; set; }
    public byte[] File { get; set; }
}

// controller
public ActionResult Create()
{
    HttpPostedFileBase file = Request.Files["ImageFile"];

    if (file.ContentLength != 0)
    {
        UploadedImage img = new UploadedImage();
        img.ContentType = file.ContentType;
        img.File = new byte[file.ContentLength];

        file.InputStream.Read(img.File, 0, file.ContentLength);

        db.UploadedImages.Add(img);
        db.SaveChanges();
    }

    return View();
}

ActionResult Show(int id)
{
    var image = db.UploadedImages.Find(id);
    if (image != null)
    {
        return File(image.File, image.ContentType,"filename goes here");
    }
}


SQL数据类型为image

这是一篇很好的文章,介绍了如何做到这一点。

http://www.hanselman.com/blog/abacktobasicbasestudyimplementinghttpfileuploadwithaspnetmvcludingtestsandmocks.aspx

祝你好运。