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