说明。使用其他数据库的设计方法类似。3.1数据库结构1、数据库名为images_db.mdb;
2、表名为images;
3:表images的结构如下:类型字段名称
id
描述主键值用来保存图片数据
自动编号OLE对象
img
3.2上传界面上传界面提供给操作者选择要上传图片文件的Form并执行发送操作。
HTML页面的程序名为
upload.htm,相应代码如下:
<html>
<body>
<center>
<formnalTle=”mainForm”enctype=”multipart/form—data’’action=”irng__process.asp”method=post>
<inputtype=filename=mefile><br><inputtype=submitname=okvalue2”OK'’>
</form>
</center></body></html>
‘
第12届全国计算机在现代科学技术领域应用学术会议论文集
Proceedingsofthe12‘“Chinasymposium
o望』;9rTlputerApplicati!璺!里坚!璺!塑曼!!!!!!垒:!!!!翌21竺墨¥
其中FORM的属性说明enctype=”muttiparffform—data”必须指定。3.3数据处理和存储在服务器端指定的ASP首先要对从浏览器中获取的数据进行必要的处理以剔除冗余数据,然后
将处理过的图片数据保存到数据库中。ASP的程序名为img._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)+4dataend=instrb(datastart+1,formdata,divider)一datastartmydata=midb(fomadam,datastart,dataend)connGraph=server.CreateObject(”ADODB.connection”)connGraph.CoxmectionString=”driver={MicrosoftAccessDriver(木.mdb)};DBQ2”&
set
server.MapPafla(”imagesdb.mdb”)&”;uid=;PWD2;”
connGraph.Open
set
rec=server.createobject(”ADODB.recordset”1
images
whereidisnull",connGraph,1,3
rec.Open”SELECT水FROM
rec.addnew
rec(”img”).appendchunkmydata
rec.update
rec.close
set
。
rec=nothing
setconnGraph=nothing
%>
.
。
3.4显示图片
.
ASP程序img_show.asp将数据库中的图片数据从数据库中读取出来发送到客户端浏览器并由浏
览器显示到网页上面。显示图片需要使用HTML中的<姒G>标签来实现,使用中只需在页面中的相
应位置加入<IMGSRC=”img_show.asp?id=xxx”>即可,其中XXX为要显示图片在数据库的表images
中的记录编号。img_show.asp的程序代码如下:
<%
set
connGraph=server.CreateObject(”ADODB.connection”)connGraph.ConnectionString=”driver={MicrosoflAccessDriver(术.mdb)};DBQ=”&server.MapPath(”images_db.mdb”)&”;uid=;PWD。;”
connGraph.Open
set
rec=server.createobject(”ADODB.recordset”)
str
sql=”selectimgfrom
images
where
id--”&trim(request(”id”))
rec.openstrsql,connGraph,1,1
Response.ContentType=”image/卑”
Response.BinaryWriterec(”img”1.getChunk(7500000)
207
第12届全国计算机在现代科学技术领域应用学术会议论文集
Proceedingsofthe12小ChinaSymposiumonComputerApplicationinModemScience&Technology
rec.close
set
rec=nothing
setconnGraph=nothing
%>
其中Response.ContentType=”image/籼’必须指定。
4结束语
向WEB服务器发送图片供网页显示是动态网站的常用功能。由于从安全角度考虑在微软的ASP中不支持对服务器磁盘直接进行二进制文件读写,因此给ASP图片上传功能的开发带来很多限制。另外,以分立的文件形式保存的图片只能用分层予目录进行分类和用文件名命名规则进行读写控制,而且这种存储结构管理起来也非常困难并缺乏安全管理手段。本文探讨的方法可以利用IIS及数据库的安全机制提高
系统的安全标准[2],示例程序已经在支持ASP的WEB服务器上经过运行测试,结果符合设计目标并解决了这两方面问题。l、通过ADO将二进制数据存入数据