使用ASP.Net MVC从数据库中检索和显示图像

时间:2012-11-02 09:57:08

标签: asp.net-mvc image

我想从数据库中检索图像,然后将其发送到视图并将其显示为缩略图。这是我的代码,但它有一些错误,我无法正确返回图像。 我正在使用ASP.Net MVC和aspx页面。

控制器:

public ActionResult showImg(int id)
{
   var imageData = from m in db.Products
                   where m.ShopId == 3
                   select Image.FromStream(new MemoryStream(m.Product_img.ToArray()));

   return new FileStreamResult(new System.IO.MemoryStream(imageData), "image/jpeg");
}

查看:

<img src='<%= Url.Action("showImg", "image", new { id = ViewData["imageID"] } ) %>' /> 

2 个答案:

答案 0 :(得分:5)

看起来您不需要在linq语句中重新创建Image对象,只需返回流并将其传递给FileStreamResult

var image = (from m in db.Products
             where m.ShopId == 3
             select m.Product_img).FirstOrDefault();

var stream = new MemoryStream(image.ToArray());

return new FileStreamResult(stream, "image/jpeg");

答案 1 :(得分:0)

非常感谢尼克。您的代码现在正确无误。我是这样写的:

    var stream = (from m in db.Products where m.ShopId == 3 select m.Product_img).FirstOrDefault();

            return File(stream, "image/jpeg");