ASP中读取数据库图片的问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 17:54:05
已经把图片存到数据库里了(2进制),asp网页读取图片的时候,虽然可以显示,但是我网页做的其他的东西,比如表格,数据都没有了,整张网页就显示一张数据库里的那图片,请问这是怎么回事?难道说ASP读取数据库图片都这样的吗?
这个是我的代码
<%
strconn="Driver={SQL Server};Server=7341FBEC715E45B;Uid=sa;pwd=;DataBase=bysj "
set rs=server.CreateObject("adodb.recordset")
sql="select * from doctor2 where 工号 = "&Session("MM_Username")&""
rs.Open sql,strconn,1,3
response.ContentType="image/JPEG"
Response.BinaryWrite rs("picture")
%>
<p><img src=<%=rs("picture")%>> </p>
另外我发现我把<p><img src=<%=rs("picture")%>> </p>这一行去掉,数据库的图片照样还是能显示,网页里的其他东西还是没有。

如果把图片数据存到数据库。应该分两个页面使用,一个专用来显示图片,只返回二进制数据。

pic.asp
<%
strconn="Driver={SQL Server};Server=7341FBEC715E45B;Uid=sa;pwd=;DataBase=bysj "
set rs=server.CreateObject("adodb.recordset")
sql="select * from doctor2 where 工号 = "&Session("MM_Username")&""
rs.Open sql,strconn,1,3
response.ContentType="image/JPEG"
Response.BinaryWrite rs("picture")
%>

show.asp
<p><img src="pic.asp"> </p>

你好!首先针对于你这个设计,我提一个建议,仅供参考!图片最好不要放在数据库里面,尽管你存储的是二进制、但是不怎么合理!你可以建一个专门用于放图片的文件夹,在数据库中可以存放相对应照片的相对地址!
其次针对于你这个问题,Response.BinaryWrite rs("picture") 这条语句就已经把数据表中所存放的照片给输出了,所以你如果把<p><img src=<%=rs("picture")%>> </p>去了的话,照片还是会有的!至于你原来的那些页面元素没有了,这是因为排版出了点问题,照片可能相对来说比较大。
最后一点,rs.Open sql,strconn,1,3这条语句已经把数据包括到rs中了,所以下面的Response.BinaryWrite rs("picture")可以姑且不要!
以上纯属个人意见,仅供参考