我想从数据库中调用图像到ASP:中继器控制,但我正在获得
本文关键字:image src quot qu Byte System 调用 数据库 图像 控制 中继器 | 更新日期: 2023-09-27 18:11:52
这是我在aspx文件中的代码
cnn.Open();
SqlDataAdapter da1 = new SqlDataAdapter("select * from carousel", cnn);
DataTable dt1 = new DataTable();
da1.Fill(dt1);
Rp1.DataSource = dt1;
Rp1.DataBind();
cnn.Close();
这是中继器
<asp:Repeater id="Rp1" runat="server">
<ItemTemplate>
<div class="item">
<asp:Image ID="Image1" ImageUrl='<%# Eval("image") %>' runat="server" />
</div>
</ItemTemplate>
<footertemplate></footertemplate>
</asp:Repeater>
我尝试了一切,但我每次都得到结果,我真的想要一些帮助,我是新的ASP。净
这是因为来自数据库的值是一个字节数组,表示图像的实际数据。而img
标签的src
需要一个图像的URL。基本上有两种方法可以做到这一点……
- 创建一个单独的页面(或者最好是ASHX处理程序),它只返回图像的数据(没有HTML或类似的东西),并链接到该页面。
- Base-64编码字节数组并将其作为数据URI包含在
src
属性中。
网上有很多关于第一种选择的教程。这是通过谷歌搜索找到的,还有其他的。本质上,处理程序要做的是接受查询字符串上的标识符,使用该标识符从数据库中获取图像,然后将适当的标头和内容写入响应。src
属性的URL将是该处理程序。比如:
ImageUrl='<# "~/handler.ashx?id=" + Eval("id") #>'
(或任何数据绑定数据用作图像标识符的内容)
假设您的图像列名在数据库"ImageName"中,那么
解决方案1:如果你的图像在根目录
<img src='<%#Eval("ImageName")%>' alt="" />
OR
<asp:Image ID="Image1" ImageUrl='<%#Eval("ImageName")%>' runat="server" />
解决方案二:如果你的图片在images文件夹
<img src='<%# "images/" + Eval("ImageName") %>' alt=""/>
或
<asp:Image ID="Image1" ImageUrl='<%# "images/" + Eval("ImageName") %>' runat="server" />
你的最终解决方案:
<asp:Repeater id="Rp1" runat="server">
<ItemTemplate>
<div class="item">
<img src='<%#Eval("ImageName")%>' alt="" />
OR
<asp:Image ID="Image1" ImageUrl='<%# "images/" + Eval("ImageName") %>' runat="server" />
</div>
</ItemTemplate>
<footertemplate></footertemplate>
</asp:Repeater>
您需要为IMG HTML标签转换URI:
<img src="<%# System.Text.Encoding.ASCII.GetString(Eval("bynarydatacolumn")) %>" />
或同等学历。
本文关键字:image src quot qu Byte System 调用 数据库 图像 控制 中继器 | 更新日期: 2023-09-27 18:11:52
这是我在aspx文件中的代码
cnn.Open();
SqlDataAdapter da1 = new SqlDataAdapter("select * from carousel", cnn);
DataTable dt1 = new DataTable();
da1.Fill(dt1);
Rp1.DataSource = dt1;
Rp1.DataBind();
cnn.Close();
这是中继器
<asp:Repeater id="Rp1" runat="server">
<ItemTemplate>
<div class="item">
<asp:Image ID="Image1" ImageUrl='<%# Eval("image") %>' runat="server" />
</div>
</ItemTemplate>
<footertemplate></footertemplate>
</asp:Repeater>
我尝试了一切,但我每次都得到结果,我真的想要一些帮助,我是新的ASP。净
这是因为来自数据库的值是一个字节数组,表示图像的实际数据。而img
标签的src
需要一个图像的URL。基本上有两种方法可以做到这一点……
- 创建一个单独的页面(或者最好是ASHX处理程序),它只返回图像的数据(没有HTML或类似的东西),并链接到该页面。
- Base-64编码字节数组并将其作为数据URI包含在
src
属性中。
网上有很多关于第一种选择的教程。这是通过谷歌搜索找到的,还有其他的。本质上,处理程序要做的是接受查询字符串上的标识符,使用该标识符从数据库中获取图像,然后将适当的标头和内容写入响应。src
属性的URL将是该处理程序。比如:
ImageUrl='<# "~/handler.ashx?id=" + Eval("id") #>'
(或任何数据绑定数据用作图像标识符的内容)
假设您的图像列名在数据库"ImageName"中,那么
解决方案1:如果你的图像在根目录
<img src='<%#Eval("ImageName")%>' alt="" />
OR
<asp:Image ID="Image1" ImageUrl='<%#Eval("ImageName")%>' runat="server" />
解决方案二:如果你的图片在images文件夹
<img src='<%# "images/" + Eval("ImageName") %>' alt=""/>
或
<asp:Image ID="Image1" ImageUrl='<%# "images/" + Eval("ImageName") %>' runat="server" />
你的最终解决方案:
<asp:Repeater id="Rp1" runat="server">
<ItemTemplate>
<div class="item">
<img src='<%#Eval("ImageName")%>' alt="" />
OR
<asp:Image ID="Image1" ImageUrl='<%# "images/" + Eval("ImageName") %>' runat="server" />
</div>
</ItemTemplate>
<footertemplate></footertemplate>
</asp:Repeater>
您需要为IMG HTML标签转换URI:
<img src="<%# System.Text.Encoding.ASCII.GetString(Eval("bynarydatacolumn")) %>" />
或同等学历。