以对该字段使用 GetChunk 方法。 如果在 Field 对象上使用 Getchunk 方法时没有当前记录, 将产生错误 3021 无当前记录) ( 。 接下来,我们就要来
设计我们的数据库了,作为测试我们的数据库结构如下(Access 97): 字段名称 类型 描述 id 自动编号 主键值 img OLE 对象 用来保存图片数据 对于在MS SQL Server7中,对应的结构如下: 字段名称 类型 描述 id int(Identity) 主键值 img image 用来保存图片数据 现在开始正式编写我们的纯ASP代码上传部分了, 首先, 我们有一个提供给用户的上传界 面,可以让用户选择要上传的图片。代码如下 (upload.htm): $#@60;html$#@62; $#@60;body$#@62; $#@60;center$#@62; $#@60;form name="mainForm" enctype="multipart/form-data" action="process.asp" method=post$#@62; $#@60;input type=file name=mefile$#@62;$#@60;br$#@62; $#@60;input type=submit name=ok value="OK"$#@62; $#@60;/form$#@62; $#@60;/center$#@62; $#@60;/body$#@62; $#@60;/html$#@62; 注意代码中黑色斜体的部分,一定要在Form中有这个属性,否则,将无法得到上传上来的数 据。 接下来,我们要在 process.asp 中对从浏览器中获取的数据进行必要的处理,因为我们在 process.asp 中获取到的数据不仅仅包含了我们想要的上传上来的图片的数据, 也包含了其 他的无用的信息,我们需要剔除冗余数据,并将处理过的图片数据保存到数据库中,这里我 们以Access97为例。具体代码如下(process.asp) :
$#@60;% response.buffer=true formsize=request.totalbytes
更多站长知识获取可参看站长百科:zzbaike
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.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ=" &; server.MapPath("images.mdb") &; ";uid=;PWD=;" connGraph.Open 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.close set rec=nothing set connGraph=nothing %$#@62; 好了, 这下我们就把上传来的图片保存到了名为images.mdb的数据库中了, 剩下的
工作就是 要将数据库中的图片数据显示到网页上面了。一般在
HTML中,显示图片都是使用 $#@60;IMG$#@62;标签,也就是$#@60;IMG SRC="图片路径"$#@62;,但是我们的图片是保存 到了数据库中,“图片路径”是什么呢?呵呵,其实这个SRC属性除了指定路径外,也可以 这样使用哦: $#@60;IMG SRC="showimg.asp?id=xxx"$#@62; 所以, 我们所要做的就是在showimg.asp中从数据库中读出来符合条件的数据, 并返回到SRC 属性中就可以了,具体代码如下(showimg.asp): $#@60;% set connGraph=server.CreateObject("ADODB.connection") connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ=" &; server.MapPath("images.mdb") &; ";uid=;PWD=;" connGraph.Open set rec=server.createobject("ADODB.recordset")
更多站长知识获取可参看站长百科:zzbaike
strsql="select img from images where id=" &; trim(request("id")) rec.open str
sql,connGraph,1,1 Response.ContentType = "image/*" Response.BinaryWrite rec("img").getChunk(7500000) rec.close set rec=nothing set connGraph=nothing %$#@62; 注意在输出到