-1

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

我正在使用 MVC3、Entity Framework Database First 和 SQL SERVER 2008

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

Image   varbinary(MAX)  Checked

此外,我使用

[DisplayName("Image")]
    public byte[] Image { get; set; }

在我的地图课上

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

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

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

但请告诉我如何检索此图像并将其显示在我的视图中

4

2 回答 2

5

最后我做到了

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

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

在我看来

<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>
于 2013-01-30T09:17:09.917 回答
2
<td>
               @{
                   var base64 = Convert.ToBase64String(item.NewsImage);
                   var imgsrc = string.Format("data:image/jpg;base64,{0}", base64);

            }
            <img src='@imgsrc' style="max-width:100px;max-height:100px" />
            </td>

只有这个需要查看图片

于 2017-04-22T16:45:28.157 回答