0

重複の可能性:
Asp.netの画像コントロールのデータベースに画像を表示するにはどうすればよいですか?

データベースから製品のリストを返しています。このリストの中に、データベース画像をバイト配列として保存しています。現在、1ページに約30の商品を表示していますが、商品情報の横に画像を追加したいと思います。これを行う最も簡単な方法は何でしょうか?

私が持っているもの:

public Image PopulatePicture()
{
    Image newImage;
    //Read image data into a memory stream
    using (MemoryStream ms = new MemoryStream(ImageByteArray, 0, ImageByteArray.Length))
    {
        ms.Write(ImageByteArray, 0, ImageByteArray.Length);

        //Set image variable value using memory stream.
        newImage = Image.FromStream(ms, true);
    }
    return newImage;
}

Image.FromStreamでエラーが発生しました(System.Web.UI.WebControlsにFromStreamの定義が含まれていません)

4

3 に答える 3

2

Mvc を使用している場合はかなり単純です

次のようなアクションを書くだけです

public FileContentResult Image()
{
   //Get the Byte Array for your image
   byte[] image = FilesBLL.GetImage();

   //Return a jpg
   //Note the second parameter is the files mime type
   return File(image, "image/jpeg");
}

Mime タイプについては、このリンクを参照してください

http://www.webmaster-toolkit.com/mime-types.shtml

ファイル テーブルに列を追加して、MIME タイプを保存することを強くお勧めします (アップロード時にこれを決定します)。

そして、あなたの見解では、このような画像を下に置きます

<img src='@Url.Action("GalleryMediumThumb")'/>

Webフォームについては、参照してください

Asp.netの画像コントロールでデータベースに画像を表示するには?

于 2012-12-05T18:31:14.147 に答える
1

ここでいくつかの問題が発生する可能性があります。

  1. System.Web.UI.WebControls.Image必要なGDI+ オブジェクトではなく、asp.net Image オブジェクト ( ) を参照しSystem.Drawing.Imageています。名前空間を明確にします。

  2. 画像にストリームを配置することはできません。using ブロックをドロップします。https://stackoverflow.com/a/13696705/64262

  3. 結果のストリームを応答ストリームに書き込み (最初に画像に変換する必要がなくなります)、<img>タグからそのエンドポイントを参照する必要があります。

于 2012-12-05T18:48:44.820 に答える
0

汎用 ASP.NET ハンドラー (*.ashx) は、データベースから画像を読み込み、通常の画像としてブラウザーにストリーミングできます。

このhttp://coffeedrivendevelopment.net/2012/10/26/sharing-image-resources-between-wpf-and-asp-net/が役に立ちますように。リソース内の画像についてですが、やり方は同じです。

于 2012-12-05T18:27:44.893 に答える