(不要另开一显示页面)在asp.net里如何显示数据库中的图片?问题:
直接另开一显示页面显示图像我是会的
但是怎么样才能够在网页上同时显示普通文本和数据库中的图像?
比如 人员姓名:老马 出生年月:1975.8.02 照片:
不要另开一显示页面,如showimg.aspx专门来显示图片
直接另开一显示页面显示图像我是会的
但是怎么样才能够在网页上同时显示普通文本和数据库中的图像?
比如 人员姓名:老马 出生年月:1975.8.02 照片:
不要另开一显示页面,如showimg.aspx专门来显示图片
你可以看看http://blog.csdn.net/zhouxing_24/archive/2008/12/30/3653392.aspx这个文章应该可以给你些帮助!
byte[] b = 赋值二进制
Response.ClearContent();Response.BinaryWrite(b);
http://www.cnblogs.com/zhongru_tu/articles/147376.html
http://www.cnblogs.com/slcfhr/archive/2008/10/25/1319530.html
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("id","DisplayPhoto.aspx?ID={0}") %>' />
showimg.aspx用来完成二进制流读出的功能
那你总要有个载体放这个byte流吧
你可以先取出,在服务器端保存为jpg或其它格式图片,再赋给<img路径不知道img server控件有没有接收byte流的属性
这是根据id显示一张图片的cs代码,文件名为DisplayPhoto.aspxSqlConnection conn = new SqlConnection(@"server=.;database=Dbase;User ID=sa;Password=;Integrated Security=SSPI;");
int id = Convert.ToInt16(Request.QueryString["id"]);
try
{
conn.Open();
SqlCommand cmd = new SqlCommand("select imagePhoto from Employees where id="+id, conn);
Response.BinaryWrite((byte[])cmd.ExecuteScalar());
}
catch
{
} 另一个页面用DataList控件调用(在一个面显示)aspx代码:
<asp:DataList ID="DataList1" runat="server" DataKeyField="id" DataSourceID="ObjectDataSource1">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" Height="60px" ImageUrl='<%# Eval("id","DisplayPhoto.aspx?id={0}") %>' Width="50px" />
</ItemTemplate>
</asp:DataList>
{
Response.Clear();
//读取图片,输出
Response.End();
}
谢谢各位的帮忙
-----------------------------------------------------
这种还是两个页面啊!晕!
Response.BinaryWrite((byte[])(数据库里读出来的记录));
用另一个页面处理起来还相对简单一些。
至于在同一个页面中显示,楼上已经有人给出做法了。其实一般来说,如果不是特殊情况,建议不要把图片或者文档内容存放到数据库里,而是保存图片的url地址,否则访问量大的时候数据库IO会成为瓶颈了。