从Database获取图像到ASHX文件并显示到转发器

时间:2014-07-07 16:35:26

标签: c# asp.net sql repeater ashx

我希望借助ASHX文件在数据库中将图像显示到转发器控件中。 我是ASP.net的初学者。如果您能为我提供任何代码示例,那将非常有用。

编辑,来自评论

我正在尝试将数据库中的图像转换为转发器控件。

这就是我在aspx.cs文件中所做的

cnn.Open(); 
SqlDataAdapter da1 = new SqlDataAdapter("select * from carousel", cnn);
DataTable dt1 = new DataTable(); da1.Fill(dt1);
Rp1.DataSource = dt1;
Rp1.DataBind();

这是我的维修者

<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ID")%>'/> 

但我在结果中获得src="system.Byte"

我知道这是因为来自数据库的值是一个表示图像实际数据的字节数组。所以我想知道ASHX

1 个答案:

答案 0 :(得分:1)

我在评论中提到的问题有一些很好的例子,说明如何将图像放在网站上。 This is the question我引用了。

特别是,this answer显示了您需要采用的方法的一个非常好的示例。

基本上,因为您将图像作为数据库中的字节数组(例如,实际图像自身,而不是参考到图像),您和#39 ;使用<asp:Image/>属性时,需要使用与ImgUrl标记略有不同的方法。

总之,你会做这样的事情(参考另一个答案):

  

创建一个常规的HTML img元素,如下所示:

<img runat="server" id="image"  />
     

在代码背后执行此操作:

image.src="data:image/png;base64,"+Convert.ToBase64String(imageBytes);
     

其中imageBytes是byte[]