您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> ACCESS >> 辅导 >> 正文    
  逐步讲解向Access数据库上传且显示图片 【注册男护士专用博客】          

逐步讲解向Access数据库上传且显示图片

www.nanhushi.com     佚名   不详 

  本文从多个角度来讲解如何在Access数据库上如何上传并且显示上所上传图片。 
  在动态网站制做过程中,需要上传图片、显示图片,上传的图片要能够保存在数据库中,一般小型网站只支持Access数据库,如何上传图片,将其保存在数据库中并将其显示出来,是数据库+ASP应用技术之一。许多书籍只介绍了SQL数据库的方法,而对Access却很少提及。网上有不少关于Access数据库上传图片、显示图片的文章,多数文章介绍的不够全面,有些程序根本就不能开通,对于初学者来说很难把握,我通过参考一些文章,向初学者提供一套比较完整的程序,较全面地介绍了利用上传向Access数据库添加图片、显示图片,希望我们这些初学的同志少走一些弯路。 

  第一步、要制做一个Access数据库,我们给它起名字叫images.mdb,该数据库里有两个字段:id、img,id字段的类型设为自动编号,img字段的类型设为OLE对象。 

  第二步、设计一个上传的表单,根据要求可简可繁。 

  第三步、设计后台的图片处理程序,可分为图片上传保存程序和图片读取程序。 

  第四步、图片显示。 

  下面给出程序并分别做介绍。 

  一、 表单程序updata.html 
  它的功能是为上传提供一个界面,表单的enctype属性为multipart/form-data,它是设置表单的MIME编码的,只有使用了它才能完整地传送文件的数据。 
  <html>
  <body>
  <center>
  <form name="mainForm" enctype="multipart/form-data"action="process.asp" method="post">
  <input type=file name=mefile>
  <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.Open "Provider=Microsoft.Jet.OLEDB.4.0;
  Data Source=" & server.MapPath("images.mdb")
  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.closes
  set rec=nothing
  set connGraph=nothing %>
 
  这段程序的功能是将上传图片的数据保存到数据库里。下面分句说明各语句的作用。 
  response.buffer=true
  formsize=request.totalbytes
  formdata=request.binaryread(formsize)
   打开缓存功能,获取客户端总的发送数据量,获取上传过来的数据。 

  bncrlf=chrB(13) & chrB(10)
  divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
  这两个语句的意思是设一个二进制回车符及得到一个divider分隔符,目的是为了确定图片的位置。 

  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.Open "Provider=Microsoft.Jet.OLEDB.4.0;
  Data Source=" & server.MapPath("images.mdb")
   创建connection对象,并连接Microsoft Access数据库。 

  set rec=server.createobject("ADODB.recordset")
  rec.Open "SELECT * FROM images where id is null",connGraph,1,3
  rec.addnew
  rec("img").appendchunk mydata


 
  创建recordset对象,打开数据库并置为写入状态,执行rec.addnew增加一条新记录,调用FIELD对象的appendchunk方法将图片数据保存到数据库表的字段中。 

  后边几句关闭数据库,释放定义组件的设置。 

  三、 图片的读取程序showing.asp 

  <%
  set connGraph=server.CreateObject("ADODB.connection")
  connGraph.Open "Provider=Microsoft.Jet.OLEDB.4.0;
  Data Source=" & server.MapPath("images.mdb")
  set rec=server.createobject("ADODB.recordset")
  id=trim(request.querystring("id"))
  strsql="select img from images where id="&Request.QueryString("id")&""
  rec.open strsql,connGraph,1,1
  Response.ContentType = "image/gif"
  Response.BinaryWrite rec("img").getChunk(7500000)
  rec.close
  set rec=nothing
  set connGraph=nothing
  %>
 
  以上程序是显示图片的后台程序,主要功能是按照要求的ID号读取数据库中图片的数据。 

  Response.BinaryWrite rec("img").getChunk(7500000)
 
  这里调用了FIELD对象的getChunk(SIZE)方法,SIZE是字节数。 

  需要注意的是使用Response对象的 ContentType属性时MIME类型的设置,我们这里将返回数据的类型设为图形方式即image/gif方式,它可以显示GIF或JPG格式的图形,如果设置为image/*,程序在执行时将不能显示图片。 

  四、 图片的显示程序show.html 

  图片上传保存到数据库里就可以调用程序显示图片了,我们再做一个表单程序,提供要显示图片的ID号。 
  <html>
  <body>
  <center>
  <form name="mainForm" enctype="text/plain"action="showing.asp" method="get">
  请输入要显示图片的序号:<input type=id name=id>
  <input type=submit name=ok value="提交">
  </form>
  </center>
  </body>
  </html>
 
  以上程序及数据库制做好以后上传到服务器上就可以使用了,也可以在本地服务器上使用,但本机要安装ⅡS插件。

 

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。