0

SQL Server DB から画像コントロールを作成してみるように依頼されました。グリッドビューを使用する前にこれを行った場合。

オンラインで見る例が見つからないので、これは可能ですか。

保存された Proc と sqlDataReader.HasRows を使用しています。画像を画像 ID に追加してページに表示したいと考えています。

私が使用する前に:

<img src='data:image/jpg;base64,<%# Eval("Photo") != System.DBNull.Value ? Convert.ToBase64String((byte[])Eval("Photo")): string.Empty %>'
alt="Person Image" height="80" width="80" />

reader.HasRowsImageID.Something を考えていたら、何を入れるかわかりません。次に ImageID.DataBind();

* 編集 *

if (rdr.Read())
{
byte[] bytes = (byte[])rdr["Photo"];
string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
img_Pict.ImageUrl = "data:image/jpg;base64," + base64String;
img_Pict.Visible = true;
}
4

1 に答える 1

0

ASHXジェネリックハンドラーを使用できます

< img src="image.ashx" >

それはこのようなものでなければなりません

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

 public class ImageHandler : IHttpHandler
 {
 public void ProcessRequest(HttpContext context)
  {
    GetFromDb();
  }

private void GetFromDb()
 {
   //..... your database code here ....

  byte[] content = (byte[])db.ExecuteScalar(sql);
  HttpContext.Current.Response.ContentType = "image/jpeg";
  HttpContext.Current.Response.BinaryWrite(content);
}

public bool IsReusable
 {
 get
  {
   return false;
   }
 }

}

プロジェクトに新しい ashx を追加し、コードをコピーします。

それが機能すると、 xyzdomain/image.ashx として画像を取得できるようになります

于 2013-07-16T12:50:05.380 に答える