3

我想从数据库中检索图像,然后将其发送到查看并显示为缩略图。这是我的代码,但它有一些错误,我无法正确返回图像。我正在使用 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"] } ) %>' /> 
4

2 回答 2

5

看起来您不需要Image在 linq 语句中重新创建对象,只需返回流并将其传递给您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");
于 2012-11-02T10:30:15.227 回答
0

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

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

            return File(stream, "image/jpeg");
于 2012-11-02T13:22:24.410 回答