LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

asp将图片保存到access数据库

admin
2010年5月11日 16:11 本文热度 7083
[p]一般我们上传图片都保存在文件目录下,但有时因为特殊要求需要将图片保存在数据库,接下来我讲一下如何用asp实现将图片保存到access数据库的方法,具体如下:[/p]
[p]第一步、要制做一个access数据库,我们给它起名字叫images.mdb,该数据库里有两个字段:id、img,id字段的类型设为自动编号,img字段的类型设为ole对象。 [/p]
[p] [/p]
[p]第二步、设计一个上传的表单,根据要求可简可繁。 [/p]
[p] [/p]
[p]第三步、设计后台的图片处理程序,可分为图片上传保存程序和图片读取程序。 [/p]
[p] [/p]
[p]第四步、图片显示。 [/p]
[p] [/p]
[p]下面给出程序并分别做介绍。 [/p]
[p] [/p]
[p]一、 表单程序updata.html [/p]
[p] [/p]
[p]它的功能是为上传提供一个界面,表单的enctype属性为multipart/form-data,它是设置表单的mime编码的,只有使用了它才能完整地传送文件的数据。 [/p]
[p] [/p]
[p][/p]
[p][/p]
[p]
[/p]
[p]
[p]action="process.asp" method="post">[/p]
[p][/p]
[p][/p]
[p]
[/p]
[p]
[/p]
[p][/p]
[p] [/p]
[p]二、 图片的上传与保存程序process.asp [/p]
[p] [/p]
[p]<%[/p]
[p]response.buffer=true[/p]
[p]formsize=request.totalbytes[/p]
[p]formdata=request.binaryread(formsize)[/p]
[p]bncrlf=chrb(13) & chrb(10)[/p]
[p]divider=leftb(formdata,clng(instrb(formdata,bncrlf))-1)[/p]
[p]datastart=instrb(formdata,bncrlf & bncrlf)+4[/p]
[p]dataend=instrb(datastart+1,formdata,divider)-datastart[/p]
[p]mydata=midb(formdata,datastart,dataend)[/p]
[p]set conngraph=server.createobject("adodb.connection")[/p]
[p]conngraph.open "provider=microsoft.jet.oledb.4.0;[br]data source=" & server.mappath("images.mdb")[/p]
[p]set rec=server.createobject("adodb.recordset")[/p]
[p]rec.open "select * from images where id is null",conngraph,1,3[/p]
[p]rec.addnew[/p]
[p]rec("img").appendchunk mydata[/p]
[p]rec.update[/p]
[p]rec.closes[/p]
[p]set rec=nothing[/p]
[p]set conngraph=nothing %> [/p]
[p]这段程序的功能是将上传图片的数据保存到数据库里。下面分句说明各语句的作用。 [/p]
[p] [/p]
[p]response.buffer=true[/p]
[p]formsize=request.totalbytes[/p]
[p]formdata=request.binaryread(formsize) [/p]
[p]打开缓存功能,获取客户端总的发送数据量,获取上传过来的数据。 [/p]
[p] [/p]
[p]bncrlf=chrb(13) & chrb(10)[/p]
[p]divider=leftb(formdata,clng(instrb(formdata,bncrlf))-1) [/p]
[p]这两个语句的意思是设一个二进制回车符及得到一个divider分隔符,目的是为了确定图片的位置。 [/p]
[p] [/p]
[p]datastart=instrb(formdata,bncrlf & bncrlf)+4[/p]
[p]dataend=instrb(datastart+1,formdata,divider)-datastart[/p]
[p]mydata=midb(formdata,datastart,dataend) [/p]
[p]以上三个语句是确定图片数据的起始位置、结束位置及实际图片的数据。 [/p]
[p] [/p]
[p]set conngraph=server.createobject("adodb.connection")[/p]
[p]conngraph.open "provider=microsoft.jet.oledb.4.0;[br]data source=" & server.mappath("images.mdb") [/p]
[p]创建connection对象,并连接microsoft access数据库。 [/p]
[p] [/p]
[p]set rec=server.createobject("adodb.recordset")[/p]
[p]rec.open "select * from images where id is null",conngraph,1,3[/p]
[p]rec.addnew[/p]
[p]rec("img").appendchunk mydata [/p]
[p]创建recordset对象,打开数据库并置为写入状态,执行rec.addnew增加一条新记录,调用field对象的appendchunk方法将图片数据保存到数据库表的字段中。 [/p]
[p] [/p]
[p]后边几句关闭数据库,释放定义组件的设置。 [/p]
[p] [/p]
[p]三、 图片的读取程序showing.asp [/p]
[p] [/p]
[p]<%[/p]
[p]set conngraph=server.createobject("adodb.connection")[/p]
[p]conngraph.open "provider=microsoft.jet.oledb.4.0;[br]data source=" & server.mappath("images.mdb")[/p]
[p]set rec=server.createobject("adodb.recordset")[/p]
[p]id=trim(request.querystring("id"))[/p]
[p]strsql="select img from images where id="&request.querystring("id")&""[/p]
[p]rec.open strsql,conngraph,1,1[/p]
[p]response.contenttype = "image/gif"[/p]
[p]response.binarywrite rec("img").getchunk(7500000)[/p]
[p]rec.close[/p]
[p]set rec=nothing[/p]
[p]set conngraph=nothing[/p]
[p]%> [/p]
[p]以上程序是显示图片的后台程序,主要功能是按照要求的id号读取数据库中图片的数据。 [/p]
[p] [/p]
[p]response.binarywrite rec("img").getchunk(7500000) [/p]
[p]这里调用了field对象的getchunk(size)方法,size是字节数。 [/p]
[p] [/p]
[p]需要注意的是使用response对象的 contenttype属性时mime类型的设置,我们这里将返回数据的类型设为图形方式即image/gif方式,它可以显示gif或jpg格式的图形,如果设置为image/*,程序在执行时将不能显示图片。 [/p]
[p] [/p]
[p]四、 图片的显示程序show.html [/p]
[p] [/p]
[p]图片上传保存到数据库里就可以调用程序显示图片了,我们再做一个表单程序,提供要显示图片的id号。 [/p]
[p] [/p]
[p][/p]
[p][/p]
[p]
[/p]
[p]
[p]action="showing.asp" method="get">[/p]
[p]请输入要显示图片的序号:[/p]
[p][/p]
[p]
[/p]
[p]
[/p]
[p][/p]
[p][/p]

该文章在 2010/5/11 16:11:09 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved