CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

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

楼主Nirvanaxumm(当声音 触觉 视野水彩般化开,我才能感受…………)2005-05-19 12:36:10 在 Web 开发 / ASP 提问

如题!!!!  
  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数据库中读取图片文件并显示在网页上?

关键词

  • mp3
  • 数据库
  • 数据
  • 文件
  • mpeg
  • video
  • application
  • asp
  • sql
  • contenttype

得分解答快速导航

  • 帖主:Nirvanaxumm
  • hfkj
  • hchxxzx
  • gatey
  • tigerhu76
  • leo963258
  • victorhero

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo