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

文章作者 100test 发表时间 2007:08:06 11:25:49
来源 100Test.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.0update
  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
src="/ncre2/js/wxgg.js">

相关文章


二级Access重点难点分析:窗体的类型
二级Access重点难点分析:窗体的概念和作用
教你如何防治Access宏病毒的通用技巧
二级Access重点难点分析:窗体
逐步讲解向Access数据库上传且显示图片
微软Office软件Word与Access数据交流技巧
推荐:教你如何在Perl下连接Access数据库
轻松几步帮你删除Access数词库中的空记录
二级Access重点难点分析:查询分类
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛