如何在数据库中存储图像,然后在MVC中显示它

Zav*_*asi -1 sql-server-2008 asp.net-mvc-3 entity-framework-5

如何在数据库中存储Image,然后使用MVC检索和显示它

我在用

MVC3
Entity Framework Database First
Run Code Online (Sandbox Code Playgroud)

SQL SERVER 2008
Run Code Online (Sandbox Code Playgroud)

在数据库中,我使用varbinary(MAX)作为图像

Image   varbinary(MAX)  Checked
Run Code Online (Sandbox Code Playgroud)

我还用过

[DisplayName("Image")]
    public byte[] Image { get; set; }
Run Code Online (Sandbox Code Playgroud)

在我的映射类中

当我尝试将其保存在我的创建操作方法中时

public ActionResult Create(MarjaaModel newMarjaa, HttpPostedFileBase uploadFile)
    {
        if (uploadFile != null && uploadFile.ContentLength > 0)
        {                               
            newMarjaa.Image = new byte[uploadFile.ContentLength];
            uploadFile.InputStream.Read(newMarjaa.Image, 0, uploadFile.ContentLength);
        }
        try
        {
            data.submitMarjaa(newMarjaa);
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我成功将图像保存为二进制数据

但是Plz告诉我如何检索这个图像并在我的视图中显示它

Zav*_*asi 5

最后我做到了

我的控制器中的一个简单方法

public ActionResult ShowImage(long id)
    {
        var model = data.getMarjaa(id);
        return File(model.Image, "image/jpg");
    }
Run Code Online (Sandbox Code Playgroud)

在我看来

<td>
       @if (item.Image == null)
       {
       <img width="40" height="40" src="http://www.abc.com/images/staff/no_worry[1].jpg" />
       }
       else
       {
       <img width="40" height="40" src='@Url.Action("ShowImage", "Admin", new { id = item.id })' />
       }
    </td>
Run Code Online (Sandbox Code Playgroud)