

<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插件。
以下为引用的内容: