0

我被要求尝试从 sql server 数据库中填充图像控件。当我这样做之前,我会使用gridview。

这可能吗,因为我找不到任何在线查看的示例。

我正在使用存储的 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.HasRows如果我在想 ImageID.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 回答