您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Access数据库上传且显示图片

添加时间:2013-2-26 17:40:08  添加: 思海网络 

本文从多个角度来讲解如何在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插件。

关键字:Access、数据库、上传

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站