使用带有entity framework的.Net MVC3将文件存储在SQL Server数据库中

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

我的基础设施是:

  • SQL Server 2008
  • 带有entity framework的C#.Net MVC3。

请帮我解决一下我必须在SQL Server和C#文件上使用的数据类型。 如果可能存储文件而不刷新更接近我的要求的页面。

谢谢。

这里有一些“示例代码”;)我省略了一堆声明,validation等,所以代码不能按原样运行,但你应该能够理解。 如果您不想刷新页面,请使用ajax类型请求提交文件表单。

// 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数据类型是图像

这是一篇很棒的文章,讲述了如何做到这一点。

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

祝好运。