用纯asp代码上传
首先,让我们了解首先要使用的对象的方法。我们用得到的数据通过在最后一页上一般使用请求对象的数据。以同样的方式,我们还可以使用请求对象来获取上传的文件数据,采用request.binaryread法和()。我们要从数据库中读取的数据显示到网页的方法:
Request.BinaryWrite()。当我们得到图像数据,当我们想把它保存到数据库中,我们不能使用INSERT语句直接操作数据库。相反,我们需要使用ADO AppendChunk方法,和图片的读取数据库中的数据,以及使用getchunk方法,每种方法的具体语法如下:
* request.binaryread语法:
变异= Request.BinaryRead(计数)
参数
变体
将返回值保存为从客户机读取数据。
计数
指定要从客户端读取的数据量,这是小于或等于获得的数据使用量的方法request.totalbytes。
* request.binarywrite语法:
request.binarywritedata
参数
数据
在客户端浏览器中写入数据包。
* request.totalbytes语法:
request.totalbytes变异=
参数
变体
返回从客户端读取的字节数到数据量。
* AppendChunk语法
将数据添加到大文本、二进制数据字段或参数对象。
object.appendchunkdata
参数
ObjectField或参数对象
数据在形状上发生变化,并包含添加到对象中的数据。
解释
长二进制或字符数可以使用AppendChunk方法使用字段或参数对象
这是填充的对象。在系统内存有限的情况下,AppendChunk方法可以用来执行的一部分,不是所有的长整型值。
* getchunk语法
返回大文本或二进制数据字段对象的全部或部分内容。
变量= field.getchunk(尺寸)
返回值
回归形状。
参数
大小长整型表达式等于要检索的字节数或字符数。
解释
该字段对象的getchunk方法用于检索部分或全部的长二进制或字符数据。在系统内存有限的情况下,该getchunk方法可以用来处理部分而不是所有的长整型值。
返回的数据getchunk呼叫将被分配给变量。如果尺寸大于剩余的数据,然后
的getchunk仅返回剩余的数据而不需要填写的变量与空白。如果该字段是空的,然后
的getchunk方法返回null。
随后的每一getchunk呼叫将检索数据,开始在以前的getchunk呼叫停止。但是,如果我们从一个领域检索数据和设置或读取当前记录中的其它字段的值,ADO将认为它已经从第一个字段检索的数据。如果getchunk方法再次呼吁第一场,ADO将电话作为一种新的getchunk操作,从开始的记录开始阅读。如果其他记录集对象不是复制的第一个记录集对象,访问它不会破坏getchunk经营领域。
如果adfldlong位在字段对象的属性属性设置为true,该getchunk方法可以用于这场。
如果没有当前记录的字段对象时使用的getchunk方法错误3021(没有当前记录)会产生。
接下来,我们要设计我们的数据库作为测试我们的数据库结构如下(2000):
字段名称类型描述
id自动编号主键值
imgole对象用于保存图像数据
为mssqlserver7,相应的结构如下:
字段名称类型描述
id(标识)主键值
img图像是用来保存图像数据
现在我们将正式地编写我们的纯ASP代码上传部分。首先,我们提供了一个上传界面给用户,允许用户选择图片上传。
(上传、HTM):
U3000 U3000
U3000 U3000
注意enctype =多部分/表单数据下一步,我们要进行必要的处理,从process.asp浏览器获取数据,因为我们有机会在process.asp不仅含有我们要上传的图片数据,也包含其他无用的信息,我们需要消除冗余数据,保存的图像数据和处理后的数据库中,这里我们以Access2000为例,具体代码如下(过程。ASP):
响应=缓冲区=真
formsize = request.totalbytes
表格数据= request.binaryread(formsize)
bncrlf = ChrB ChrB(10)(13)
分频器= LEFTB(表单,CLng(instrb(表单,bncrlf))- 1)
= instrb(表单资料入手,bncrlfbncrlf)+ 4
DATAEND = instrb(资料入手+ 1、表单、分频器)-资料入手
MYDATA =多重交替焙烘显影工艺(表单、资料入手,DATAEND)
setconngraph = server.createobject(数据连接)
conngraph。ConnectionString =司机= { microsoftaccessdriver(* .mdb)};DBQ =server.mappath(图像。mdb);UID =;pwd=;
conngraph。开放
setrec = server.createobject(ADODB。记录集)
建议打开选择*从{图片} whereidisnull
rec.addnew
REC(IMG)。appendchunkmydata
rec.update
rec.close
setrec =没有
setconngraph =没有
%>
好的,然后保存上传图片到数据库命名images.mdb,剩下的是要显示的图片数据在数据库中的网页。一般来说,在HTML中,所有的照片都贴上标签,这是,但我们的图片存储在数据库。图片的路径是什么事实上,除了指定的路径之外,还可以使用这个SRC属性。
所以,我们要做的是阅读的条件从数据库中showimg.asp。
的数据,并返回到src属性是好的,具体代码如下(ShowImg。ASP):
setconngraph = server.createobject(数据连接)
conngraph。ConnectionString =司机= { microsoftaccessdriver(* .mdb)};DBQ =
server.mappath(图像。mdb);UID =;pwd=;
conngraph。开放
setrec = server.createobject(ADODB。记录集)
如何为selectimgfromimageswhereid =修剪(请求(ID))
rec.openstrsql,conngraph,1,1
响应。ContentType =图像 / *
response.binarywriterec(IMG)。GetChunk(7500000)
rec.close
setrec =没有
setconngraph =没有
%>
注意反应。ContentType =图像 / * 必须指定输出到浏览器之前,
这样可以正常显示图片。
要注意的最后一件事是,我process.asp处理不考虑到有在第一页的其他数据(上传.htm),太。例如,如果你有这些东西,你的process.asp要注意处理不必要的数据。