我被要求尝试从sql server DB填充图像控件。当我在使用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;
}
答案 0 :(得分:0)
您可以使用ASHX通用处理程序
&LT; img src =“image.ashx”&gt;
一定是这样的
[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
的图像