日期:2014-05-17  浏览次数:20755 次

ASP读取数据库图片问题 图片以二进制数存储的。
<%
dim rs,sql
set rs=server.createobject("ADODB.recordset")
sql="select photos from btn_customer where customer_id='70218560901400167'"
rs.open sql,conn,1,1
Response.ContentType="image/*"
Response.BinaryWrite rs("photos").getChunk(7500000)
rs.close
set rs=nothing
set conn=nothing 
%>

<p><img src=<%=rs("photos")%>> </p>

</body>
</html>
<% 

rs.close
set rs = nothing
Call CloseData() 
%>



错误类型:
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配
/syt/bbb.Asp, 第 51 行


------解决方案--------------------
showImage.asp里面写
<%
dim rs,sql
set rs=server.createobject("ADODB.recordset")
sql="select photos from btn_customer where customer_id='70218560901400167'"
rs.open sql,conn,1,1
Response.ContentType="image/*"
Response.BinaryWrite rs.Fields("photos").getChunk(rs.Fields("photos").ActualSize)
rs.close
set rs=nothing
set conn=nothing 
%>
------解决方案--------------------
其实这个问题很简单。只是你弄错了而已。。

为什么提示你rs错误。是因为。你的页面上定义了。rs。但是你直接:rs("id")
id从哪里来??

<p><img src=showImage.asp?id=<%=rs("id")%>> </p>
这里的rs是你通过查询出来的一个id传递到:showImage.asp文件里面。showImage.asp就是根据你传递的ID来显示图片..

最后:
showImage.asp里面并没有传递id参数。所以没有必要写id=xxx,直接:
<p><img src=showImage.asp> </p>

<%
dim rs,sql
set rs=server.createobject("ADODB.recordset")
sql="select photos from btn_customer where customer_id='70218560901400167'"
rs.open sql,conn,1,1
Response.ContentType="image/*"
Response.BinaryWrite rs.Fields("photos").getChunk(rs.Fields("photos").ActualSize)
rs.close
set rs=nothing
set conn=nothing
%>