从DB填充图像控件
本文关键字:控件 图像 填充 DB | 更新日期: 2023-09-27 18:22:39
我被要求尝试从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.HasRows
我在想ImageID。什么?然后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;
}
您可以使用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 的图像