请问可以把数据库中的图片显示在网页中吗!!

Nirvanaxumm 2005-05-19 12:36:10
如题!!!!
Sql Server中的Image类型的数据!!
在Grid中显示是Blob类型的!!!
谢谢大家了!!!!!!!!!!!
...全文
569 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nirvanaxumm 2005-05-24
  • 打赏
  • 举报
回复
虽然没有解决!还是谢谢大家!!
victorhero 2005-05-22
  • 打赏
  • 举报
回复
mark
leo963258 2005-05-22
  • 打赏
  • 举报
回复
好了,看看我们的代码吧:
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
%>
Nirvanaxumm 2005-05-22
  • 打赏
  • 举报
回复
其实我开始就是做的文件路径数据,但是发现冗余的信息太多,所以存数据库中!!!
我是做的客户端WEB程序,主程序用Delphi做的。没想到这样取不出!
不过还是谢谢大家!!!!
leo963258 2005-05-21
  • 打赏
  • 举报
回复
至于图片。你上传的时候把路径记录下来写在数据库里。
这个还可以减小数据库大小
leo963258 2005-05-21
  • 打赏
  • 举报
回复
你数据库里不要放图片啊。
改放图片路径洒~~~
tigerhu76 2005-05-21
  • 打赏
  • 举报
回复
mark
Nirvanaxumm 2005-05-20
  • 打赏
  • 举报
回复
都不行啊!但是还是要感谢各位的关注!!
再来几位达人帮忙解决一下吧!谢谢了!!
gatey 2005-05-19
  • 打赏
  • 举报
回复

以下代码支持所有数据库存储的文件,请作适当修改。

<!--#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
%>

hchxxzx 2005-05-19
  • 打赏
  • 举报
回复
你是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
%>
Nirvanaxumm 2005-05-19
  • 打赏
  • 举报
回复
自己顶一个!
上面这位的我发到公司邮箱去看看!!呵呵!公司不能上网!!
一经搞定!马上结贴!!!
hfkj 2005-05-19
  • 打赏
  • 举报
回复
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=nothing

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧