ASP如何实现读取并且显示ACCESS
ASP如何实现读取并且显示ACCESS数据库中的长二进制数(也就是通过ASP页面,提交表单而导入的图片)现在我遇到的问题是,我通过ASP页面1提交表单,而后在ASP页面2...
ASP如何实现读取并且显示ACCESS数据库中的长二进制数(也就是通过ASP页面,提交表单而导入的图片)
现在我遇到的问题是,我通过ASP页面1提交表单,而后在ASP页面2显示出来的是导入的文件路径 展开
现在我遇到的问题是,我通过ASP页面1提交表单,而后在ASP页面2显示出来的是导入的文件路径 展开
6个回答
展开全部
给你一个输出数据库中图片的代码
代码中的admin表中的username就是上传的长二进制数图片,你根据你的代码修改一下表名和字段名,还有数据库路径,试一下吧.
代码中一定要有 Response.ContentType = "image/*" 这一行,如果没有这个,将显示不出图片,而只是路径
<%
set conn=server.createobject("adodb.connection")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("test.mdb")
set rec=server.createobject("ADODB.recordset")
strsql="select username from admin order by id desc"
rec.open strsql,conn,1,1
Response.ContentType = "image/*"
Response.BinaryWrite rec("username").getChunk(7500000)
rec.close
set rec=nothing
set conn=nothing
%>
另外提供一个上传图片到数据库长二进制字段中的代码
index.html
<html>
<body>
<center>
<form name="mainForm" enctype="multipart/form-data"
action="process.asp" method=post>
<input type=file name=mefile><br>
<input type=submit name=ok value="OK">
</form>
</center>
</body>
</html>
process.asp
<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
set conn=server.createobject("adodb.connection")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("test.mdb")
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM admin where id is null",conn,1,3
rec.addnew
rec("username").appendchunk mydata
rec.update
rec.close
%>
<%
rec.open("select top 1 username from admin order by id desc"),conn,1,1
if not(rec.eof and rec.bof) then
%>
最新上传的图片是:<img src="showpic.asp">
<%
end if
rec.close
set rec=nothing
set conn=nothing
%>
代码中的admin表中的username就是上传的长二进制数图片,你根据你的代码修改一下表名和字段名,还有数据库路径,试一下吧.
代码中一定要有 Response.ContentType = "image/*" 这一行,如果没有这个,将显示不出图片,而只是路径
<%
set conn=server.createobject("adodb.connection")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("test.mdb")
set rec=server.createobject("ADODB.recordset")
strsql="select username from admin order by id desc"
rec.open strsql,conn,1,1
Response.ContentType = "image/*"
Response.BinaryWrite rec("username").getChunk(7500000)
rec.close
set rec=nothing
set conn=nothing
%>
另外提供一个上传图片到数据库长二进制字段中的代码
index.html
<html>
<body>
<center>
<form name="mainForm" enctype="multipart/form-data"
action="process.asp" method=post>
<input type=file name=mefile><br>
<input type=submit name=ok value="OK">
</form>
</center>
</body>
</html>
process.asp
<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
set conn=server.createobject("adodb.connection")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("test.mdb")
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM admin where id is null",conn,1,3
rec.addnew
rec("username").appendchunk mydata
rec.update
rec.close
%>
<%
rec.open("select top 1 username from admin order by id desc"),conn,1,1
if not(rec.eof and rec.bof) then
%>
最新上传的图片是:<img src="showpic.asp">
<%
end if
rec.close
set rec=nothing
set conn=nothing
%>
展开全部
首先链接数据库
dataaccess = server.mappath("data/xxxx.mdb")
'连接OLEDB
Set oConn = Server.CreateObject("ADODB.CONNECTION")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dataaccess
其次打开表并读取记录
sql = "select top 100 * from [tablebb] where 1=1"
Set oRs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, oconn, 1, 1
if not rs.eof then
while not rs.eof
response.write("<p>"& rs("字段") &"</p>") ‘读取字段名称,打印记录出来
rs.movenext '下一条记录
wend
end if
dataaccess = server.mappath("data/xxxx.mdb")
'连接OLEDB
Set oConn = Server.CreateObject("ADODB.CONNECTION")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dataaccess
其次打开表并读取记录
sql = "select top 100 * from [tablebb] where 1=1"
Set oRs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, oconn, 1, 1
if not rs.eof then
while not rs.eof
response.write("<p>"& rs("字段") &"</p>") ‘读取字段名称,打印记录出来
rs.movenext '下一条记录
wend
end if
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-02-22
展开全部
不是很明白你的意思,如果是读取图片数据然后想显示图片的话可以在代码里这样写,<img src="<%=rs("file")%>" >
追问
就是说我现在通过页面通过表单 文件域将图片上传进了 ACCESS数据库,并且在数据库中也显示其为 长二进制数。
但是我页面上查询数据时候 那一项中仅仅就显示了 文件路径。我想它直接显示图片。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个肯定是程序问题。
需要先把这个图片转换成二进制。
如果通过表单提交,获得的是文件路径。
你应该把文件当做未知文件处理,上传到服务器端,然后转换成二进制,然后服务器端恢复成图片。
建议不要把图片放数据库中,这样的话,服务端的压力比较大。
需要先把这个图片转换成二进制。
如果通过表单提交,获得的是文件路径。
你应该把文件当做未知文件处理,上传到服务器端,然后转换成二进制,然后服务器端恢复成图片。
建议不要把图片放数据库中,这样的话,服务端的压力比较大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先链接数据库
dataaccess = server.mappath("data/xxxx.mdb")
'连接OLEDB
Set oConn = Server.CreateObject("ADODB.CONNECTION")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dataaccess
其次打开表并读取记录
sql = "select top 100 * from [tablebb] where 1=1"
Set oRs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, oconn, 1, 1
if not rs.eof then
while not rs.eof
response.write("<p>"& rs("字段") &"</p>") ‘读取字段名称,打印记录出来
rs.movenext '下一条记录
wend
end if
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询