请问可以把数据库中的图片显示在网页中吗!!
如题!!!!
Sql Server中的Image类型的数据!!
在Grid中显示是Blob类型的!!!
谢谢大家了!!!!!!!!!!!
问题点数:100、回复次数:12Top
1 楼hfkj(海风)回复于 2005-05-19 13:11:51 得分 20
set rec=Server.createobject("ADODB.recordset")
strsql="select img from picture where pictureid=" & trim(request("pictureid"))
rec.open strsql,objconn,1,1
Response.ContentType = "img/*"
Response.BinaryWrite rec("img").getChunk(7500000)
rec.close
set rec=nothing
set objconn=nothingTop
2 楼Nirvanaxumm(当声音 触觉 视野水彩般化开,我才能感受…………)回复于 2005-05-19 13:20:25 得分 0
自己顶一个!
上面这位的我发到公司邮箱去看看!!呵呵!公司不能上网!!
一经搞定!马上结贴!!!Top
3 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-19 13:23:03 得分 20
你是sqlserver的image,还是"blob"?
是在ASP中还是在ASP.NET中显示?
下面给你一个ASP中显示ORACLE数据库的long raw图片的例子
<%
'其中,filemime存放的是该文件的格式,filenmae存放该文件名称,fileraw就是long raw字段
'在要显示图片的页面这样写<img src=show.asp?id=xxx width=180>,之后本页面就可以从数据库中把图片数据取出来进行显示。
Set rs = Server.CreateObject("ADODB.recordset")
sql="select filemime,filename,fileraw from imgtable where id='"&request("id")&"'"
rs.open sql,cn,1,1
if not rs.eof then
Response.ContentType = rs("filemime")
Response.AddHeader "Content-Disposition", "online;filename="&rs("filename")
Response.BinaryWrite rs("fileraw").getChunk(rs("fileraw").ActualSize)
rs.close
%>
Top
4 楼gatey(吹过的海风)回复于 2005-05-19 13:44:58 得分 20
以下代码支持所有数据库存储的文件,请作适当修改。
<!--#include file="cms-server/inc/conn.asp"-->
<%
on error resume next
set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from tblBinFiles where FileID='" & checkstr(request("FileID")) &"'"
rs.open sql,conn,1,3
if not(rs.EOF and rs.BOF or isnull(rs("Bin"))) then
Response.ContentType = getContentType(rs("FileExt"))
if GetFileType(rs("fileext")) <> 1 then Response.AddHeader "content-disposition", "attachment; filename=SiteManager_" & rs("FileID")
Response.BinaryWrite rs("Bin").getChunk(7500000)
Response.Flush
response.Clear()
viewtimes = rs("viewtimes") + 1
rs.Update
rs("viewtimes") = viewtimes
rs.Update
else
Response.Write "无效的数据格式"
end if
rs.close
set rs=nothing
Response.Write Err.Description
conn.close
set conn = nothing
function getContentType(fileExt)
Select Case lcase(FileExt)
Case "asf"
ContentType = "video/x-ms-asf"
Case "avi"
ContentType = "video/avi"
Case "doc"
ContentType = "application/msword"
Case "zip"
ContentType = "application/zip"
Case "xls"
ContentType = "application/vnd.ms-excel"
Case "gif"
ContentType = "image/gif"
Case "jpg", "jpeg"
ContentType = "image/jpeg"
Case "wav"
ContentType = "audio/wav"
Case "mp3"
ContentType = "audio/mpeg3"
Case "mpg", "mpeg"
ContentType = "video/mpeg"
Case "rtf"
ContentType = "application/rtf"
Case "htm", "html"
ContentType = "text/html"
Case "txt","asp","asa", "aspx", "asax"
ContentType = "text/plain"
Case Else
ContentType = "application/octet-stream"
End Select
getContentType = ContentType
end function
function GetFileType(fileext)
'判断文件类型
if lcase(fileExt)="gif" or lcase(fileExt)="jpg" or lcase(fileExt)="jpeg" or lcase(fileExt)="bmp" or lcase(fileExt)="png" then
GetFileType=1
elseif lcase(fileExt)="swf" or lcase(fileExt)="swi" then
GetFileType=2
elseif lcase(fileExt)="mid" or lcase(fileExt)="wav" or lcase(fileExt)="mp3" or lcase(fileExt)="rmi" or lcase(fileExt)="cda" then
GetFileType=3
elseif lcase(fileExt)="avi" or lcase(fileExt)="wov" or lcase(fileExt)="asf" or lcase(fileExt)="mpg" or lcase(fileExt)="mpeg" or lcase(fileExt)="ra" or lcase(fileExt)="ram" then
GetFileType=4
else
GetFileType=0
end if
end function
Function CheckStr(str)
If IsNull(str) Then
CheckStr = ""
Exit Function
End If
CheckStr = Replace(str, "'", "''")
End Function
%>
Top
5 楼Nirvanaxumm(当声音 触觉 视野水彩般化开,我才能感受…………)回复于 2005-05-20 23:04:30 得分 0
都不行啊!但是还是要感谢各位的关注!!
再来几位达人帮忙解决一下吧!谢谢了!!Top
6 楼leo963258(我劝天公重抖擞,不拘一格降人才)回复于 2005-05-21 00:23:36 得分 0
你数据库里不要放图片啊。
改放图片路径洒~~~Top
7 楼leo963258(我劝天公重抖擞,不拘一格降人才)回复于 2005-05-21 00:25:30 得分 0
至于图片。你上传的时候把路径记录下来写在数据库里。
这个还可以减小数据库大小Top
8 楼tigerhu76(虎虎)回复于 2005-05-21 08:00:40 得分 10
markTop
9 楼Nirvanaxumm(当声音 触觉 视野水彩般化开,我才能感受…………)回复于 2005-05-22 17:10:06 得分 0
其实我开始就是做的文件路径数据,但是发现冗余的信息太多,所以存数据库中!!!
我是做的客户端WEB程序,主程序用Delphi做的。没想到这样取不出!
不过还是谢谢大家!!!!Top
10 楼leo963258(我劝天公重抖擞,不拘一格降人才)回复于 2005-05-22 18:37:32 得分 20
好了,看看我们的代码吧:
upload.htm
' 上传页面
<html>
<body>
<p align="center">图片</p>
<center>
<form name="mainForm" enctype="multipart/form-data"
' 这个Form属性是得到上传的数据的关键
action="process.asp" method=post>
<input type=file name=mefile><br>
<input type=submit name=ok value="上传">
</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 connGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};
DBQ=" & server.MapPath("images.mdb") & ";uid=;PWD=;"
connGraph.Open
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM [images] where id is null",connGraph,1,3
rec.addnew
rec("img").appendchunk mydata
rec.update
rec.close
set rec=nothing
set connGraph=nothing
%>
showimg.asp
' 显示图片
<%
set connGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};
DBQ=" & server.MapPath("images.mdb") & ";uid=;PWD=;"
connGraph.Open
set rec=server.createobject("ADODB.recordset")
strsql="select img from images where id=" & trim(request("id"))
rec.open strsql,connGraph,1,1
Response.ContentType = "image/*"
' 在输出到浏览器之前一定要指定Response.ContentType = "image/*",以便正常显示图片
Response.BinaryWrite rec("img").getChunk(7500000)
rec.close
set rec=nothing
set connGraph=nothing
%>
Top
11 楼victorhero(游神)回复于 2005-05-22 19:18:54 得分 10
markTop
12 楼Nirvanaxumm(当声音 触觉 视野水彩般化开,我才能感受…………)回复于 2005-05-24 19:34:05 得分 0
虽然没有解决!还是谢谢大家!!Top
相关问题
- 如何将数据库中的图片读出并显示在网页上?
- 如何在html网页中显示从数据库(SQL)里取出的图片?
- 如何在网页上显示一个保存在数据库中的图片?
- 怎么用jsp从数据库中取出图片并显示在网页上
- 如何在网页的图片上任意位置显示数据库数据!(不是背景图片)有一部分数据库脚本
- 存在access97 数据库中的图片怎样显示到asp网页里?请大家帮帮忙!谢谢!!
- 在ASP.Net中,怎样把 从数据库拿出来的图片,分页显示在网页中。
- 怎样在在网页上对sever数据库中图片字段的写入和取出显示??
- 关于在网页上显示ORACLE数据库里存储的图片的问题,谢谢!
- 怎样从SQL SERVER数据库中读取图片文件并显示在网页上?




