8.1 文件上传技术
2011年04月23日
文件上传技术
(文件和文件夹的处理,fso,文件上传,邮件发送技术)
一、普通表单上传技术
**注释:这种技术是利用html语言结合asp技术和vbscript脚本所实现的简单代码控制,使用简单,功能有限。
-------具体是使用form表单对象中的文件域来实现的。
表单使用文件域后,必须设置一个特殊的属性,具体为enctype="multipart/form-data" ,示例如下:
例1:使用表单上传技术制作一个上传功能。
上传">
说明:这里的上传只是给了用户选择文件的权利,因此上传的起始点和终点是固定的,也就是本地客户机本地目录到服务器存放此类文件指定目录。
二、无组件上传技术
*补充知识:
在目前的网络模型中(主要是osi七层模型和tcp/ip四层模型),基于http协议的上传机制有三种,分别是WebDAV,PUT,RFC1867.
WebDAV和PUT都可以在web应用中提供文件上传应用程序服务,但因为灵活性很差,已经很少有人使用,而RFC1867既保留了程序的高效性,又具有足够的灵活性,已经成为文件上传的最好方法(安全快速),是目前最普遍采用的机制。
**补充2:
RFC1867的文件上传机制:
使用ADO stream对象(这是一个数据库和文件相结合的对象,用数据库的方法来解决存储问题,用文件的方法来解决上传等操作问题)的BinaryRead方法将form表单中的数据读出,截取所需的文件数据,用二进制的方式存盘。(另存为)
**补充3:
在RFC1867机制的最后一步存盘时,有两种方式,一种是用vb,vc,vfp中提到的二进制文件操作方法,在工程中加入类库,编译成dll文件,最后把该文件在用户计算机上注册使用即可;另一种方式是利用ADO stream对象中提供的二进制本质操作方法来完成,保存语句为 streamOBJ.savetofile (filename,2) ,在该方式中,可以将有关的操作存储在一个类文件中,把此类文件放在ASP站点里面,并调用即可。
----->标准化程序方法也称为组件上传机制,类文件包含调用方法也称为无组件上传机制。
1.该方法需要两个条件,第一个是编写好的类支持文件,另一个是掌握该类文件中对存盘操作的相关属性和方法。
目前的上传类文件在网上很容易找到,其中一段时间内人气很红的一个类文件叫做“无惧下载类”(“无惧上传”),该文件由很多类支持文件构成,主要的类声明和定义在upfile_class.asp里面,可以用记事本查看源代码。
2.无惧上传中的常用属性和方法
iserr:返回错误的数值。-1表示无错,1表示没有上传成功,2表示上传文件过大
allowext:允许上传的文件类型,根据后缀名来判断,不区分大小写,多个后缀名用“;”号隔开。
NOallowext:黑名单,和上一个完全相反,格式完全一样
errmessage:返回错误信息。
filename:文件名称
fileext:返回上传的文件扩展名
filesize:文件的具体大小,单位是字节。
Autosave(表单项,上传文件):保存到文件,把上传的内容自动设置一个非重名的文件加以保存。
savetofile:保存到文件,如果有服务器上有同名文件,自动覆盖。
例2:无惧上传类的调用代码
upload.asp
上传成功"
set upfile=nothing
%>
三、组件上传技术
1.安装组件 aspupload
2.程序组成:普通上传表单+处理程序
处理程序参考代码如下:
上传成功!"
%>
2011年04月23日
文件上传技术
(文件和文件夹的处理,fso,文件上传,邮件发送技术)
一、普通表单上传技术
**注释:这种技术是利用html语言结合asp技术和vbscript脚本所实现的简单代码控制,使用简单,功能有限。
-------具体是使用form表单对象中的文件域来实现的。
表单使用文件域后,必须设置一个特殊的属性,具体为enctype="multipart/form-data" ,示例如下:
例1:使用表单上传技术制作一个上传功能。
上传">
说明:这里的上传只是给了用户选择文件的权利,因此上传的起始点和终点是固定的,也就是本地客户机本地目录到服务器存放此类文件指定目录。
二、无组件上传技术
*补充知识:
在目前的网络模型中(主要是osi七层模型和tcp/ip四层模型),基于http协议的上传机制有三种,分别是WebDAV,PUT,RFC1867.
WebDAV和PUT都可以在web应用中提供文件上传应用程序服务,但因为灵活性很差,已经很少有人使用,而RFC1867既保留了程序的高效性,又具有足够的灵活性,已经成为文件上传的最好方法(安全快速),是目前最普遍采用的机制。
**补充2:
RFC1867的文件上传机制:
使用ADO stream对象(这是一个数据库和文件相结合的对象,用数据库的方法来解决存储问题,用文件的方法来解决上传等操作问题)的BinaryRead方法将form表单中的数据读出,截取所需的文件数据,用二进制的方式存盘。(另存为)
**补充3:
在RFC1867机制的最后一步存盘时,有两种方式,一种是用vb,vc,vfp中提到的二进制文件操作方法,在工程中加入类库,编译成dll文件,最后把该文件在用户计算机上注册使用即可;另一种方式是利用ADO stream对象中提供的二进制本质操作方法来完成,保存语句为 streamOBJ.savetofile (filename,2) ,在该方式中,可以将有关的操作存储在一个类文件中,把此类文件放在ASP站点里面,并调用即可。
----->标准化程序方法也称为组件上传机制,类文件包含调用方法也称为无组件上传机制。
1.该方法需要两个条件,第一个是编写好的类支持文件,另一个是掌握该类文件中对存盘操作的相关属性和方法。
目前的上传类文件在网上很容易找到,其中一段时间内人气很红的一个类文件叫做“无惧下载类”(“无惧上传”),该文件由很多类支持文件构成,主要的类声明和定义在upfile_class.asp里面,可以用记事本查看源代码。
2.无惧上传中的常用属性和方法
iserr:返回错误的数值。-1表示无错,1表示没有上传成功,2表示上传文件过大
allowext:允许上传的文件类型,根据后缀名来判断,不区分大小写,多个后缀名用“;”号隔开。
NOallowext:黑名单,和上一个完全相反,格式完全一样
errmessage:返回错误信息。
filename:文件名称
fileext:返回上传的文件扩展名
filesize:文件的具体大小,单位是字节。
Autosave(表单项,上传文件):保存到文件,把上传的内容自动设置一个非重名的文件加以保存。
savetofile:保存到文件,如果有服务器上有同名文件,自动覆盖。
例2:无惧上传类的调用代码
upload.asp
上传成功"
set upfile=nothing
%>
三、组件上传技术
1.安装组件 aspupload
2.程序组成:普通上传表单+处理程序
处理程序参考代码如下:
上传成功!"
%>