0

我有一个将图像存储在数据库中的 .NET MVC 4 应用程序。我正在检索这样的图像:

byte[] imageBytes = dbObject.dbImage;
MemoryStream ms = new MemoryStream(imageBytes);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms);

所以现在我有了图像,我只想在 MVC 视图中显示它。如果不将图像保存在本地,我无法弄清楚如何做到这一点,这似乎很疯狂。我已经阅读了有关创建处理程序的其他建议,但对于这样一个简单的任务来说,这似乎有点矫枉过正。

如何在视图中显示此图像?

4

3 回答 3

4

您可以将字节转换为 Base64 并将其嵌入到data:URI中。

请注意,这在 IE < 8 中不起作用。

于 2013-08-27T16:59:19.283 回答
2

您可以创建一个返回图像的动作,例如

控制器

public ActionResult GetImage(int imageId) {
  byte[] imageBytes = dbObject.dbImage;
  MemoryStream ms = new MemoryStream(imageBytes);
  return File(ms, "image/png", "myimage.png");
}

看法

<img src="@Url.Action("GetImage", "MyController", new { imageId = 1 })" alt="MyImage" />
于 2013-08-27T17:00:17.477 回答
1

你可以简单地使用FileResult

控制器

public ActionResult Images() {
    byte[] imageBytes = dbObject.dbImage;
    return File(imageBytes, "image/png");
}

看法

<img src="@Url.Action("Images", "Controller")"  />
于 2013-08-27T17:02:27.593 回答