3

データベースから画像を取得し、それを送信してサムネイルとして表示および表示したいと思います。これが私のコードですが、エラーがあり、画像を正しく返すことができません。ASP.NetMVCと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

Imagelinqステートメントでオブジェクトを再作成する必要はないようです。ストリームを返し、 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 に答える