2024年5月26日发(作者:)

艾恩ASP无组件上传类(上传组件)

AienAspUpload V13.01.16 By Anlige

一、简介

自从接触ASP就开始接触上传,看过一些上传类,但是总感觉封装的还是不够简单,因此自己尝试

写一个能够用最少最简单的代码实现各种上传方式的上传类。

在学校期间就开始写,一点点的完善、优化,到现在的版本,现在的版本能适应各种上传方式。上

传类的主要的功能如下:

1、自由设置最大上传大小、单文件最大上传大小

2、自由设置允许上传的文件类型

3、可设置文本的编码,以适应各种上传环境

4、内置进度条,用户可选择开启和关闭(需配合客户端程序)

5、多种错误状态处理

6、多种文件保存方式:原文件名、随机文件名、用户自定义文件名

7、自由选择是否覆盖已存在文件

8、完整保存表单数据,支持同名表单,不支持同名文件域

9、可获取常见图片格式的宽高

10、优化的上传过程。。。

注意:

1、特别注意Form一定要加上enctype="multipart/form-data"属性,method属性值必须是post,否

则上传会出错

2、()方法获取数据失效,请使用()

3、上传前请确认保存文件的文件夹有读写权限,若不可写则会出现"文件无法写入"错误,解决方法

/?id=81

二、调用方法

dim Upload

set Upload = new AnUpLoad

注意:上传属性的设置必须在调用a()之前。

简单调用示例:

dim Upload

set Upload=new AnUpLoad'Set Upload = Object("ad")

Size=1024*1024*1024'设置单个文件最大上传限制,按字节计;默认为不限制

e=1024*1024*1024'设置最大上传限制,按字节计;默认为不限制

="*.bmp;*.rar;*.pdf;*.jpg;*.gif;"'设置合法扩展名

t="gb2312"'设置文本编码,默认为gb2312

= 0

a()'获取并保存数据,必须调用本方法

三、类说明

上传涉及2个类:AnUpLoad(关键上传类)和UploadFileEx(文件辅助类),下面分别说明:

1、AnUpLoad(关键上传类)

属性:

属性名

Mode

MaxSize

SingleSize

Exe

CharSet

ErrorID

FileCount

Description

读/写

只写

只写

只写

只写

只写

只读

只读

只读

说明

Int,数据读取方式,建议使用默认值,性能比较好。

long,允许上传的最大字节数。

Long,允许上传的单文件的最大字节数。

String,允许上传的扩展名,不设置则允许所有,*也匹

配所有。例如“*.exe;*.txt;”,兼容原设置方式

String,设置文本编码,默认为GB2312。

Int,上传过程发生错误的ID号,大于0代表上传出错

Int,上传文件的数量

String,上传过程中的描述。

根据ErrorID分别如下描述:

ErrorID=0,COMPLETE

ErrorID=1,ERROR_FILE_EXCEEDS_MAXSIZE_LIMIT

ErrorID=2,ERROR_INVALID_ENCTYPEOR_METHOD

ErrorID=3,ERROR_INVALID_FILETYPE

ErrorID=5,ERROR_FILE_EXCEEDS_SIZE_LIMIT

String,上传类/组件的版本号

Long,上传文件的的总大小

Long,上传使用的时间,不包括保存文件的时间

Version

TotalSize

LostTime

方法:

方法原型

GetData()

GetSize(Byval Size)

只读

只读

只读

说明

处理上传的数据,没有任何参数也没有返回值

作用

参数

返回值

说明

格式化数字为可直接识别的文件大小表示方式

Size:必选,文件大小的数字表示方式

String,格式化后的文件大小的文本表示方式

例如,1024返回1KB

获取表单数据

formname:表单名字,必选

String,表单值

若formname为-1,返回一个包含所有表单项的一个

dictionary对象

获取文件类

formname:文件域的名字,必选

UploadFileEx,包含文件信息的文件类。类详细说明

请参考UploadFile的说明

Forms(Byval formname)作用

参数

返回值

说明

Files(Byval formname)作用

参数

返回值

说明若formname为-1,返回一个包含所有上传文件类的一

个dictionary对象

若上传多个name属性相同的文件,则只返回第一个匹

配的文件(为兼容HTML5而修改)

根据Index获取文件类

formname:文件域的名字,必选

index:索引,从0开始,必选

UploadFileEx,包含文件信息的文件类。类详细说明

请参考UploadFile的说明

若formname为-1,返回一个包含所有上传文件类的一

个dictionary对象

快速保存指定文件域的文件

formname:文件域的名字,必选

SavePath:保存路径

Int,成功保存的文件数量

Files_Muti(ByVal

formname,byval index)

本方法为兼容HTML5添加

作用

参数

返回值

说明

QuickSave(ByVal

formname,Byval SavePath)

作用

参数

返回值

说明

2、UploadFileEx(文件类(对象),保存文件相关信息)

一些由程序自动处理的属性不建议用户写入(Size,value,IsFile,FormName)。

属性:

属性名

FormName

NewName

LocalName

FileName

UserSetName

ContentType

Size

value

Path

Extend

Exception

IsFile

说明

String,只读,文件域名(name属性)

String,可读写,程序自动生成的文件名(时间+随机数)

String,可读写,原文件名

String,只读,保存到硬盘的文件名,调用saveToFile后有效

String,可读写,用户自定义文件名,不包含扩展名

String,只读,文件类型

Long,只读,文件大小

Byte[],只读,文件数据

String,只读文件在服务器的保存目录的路径

String,可读写,文件的扩展名(仅SaveToFile的tOption为-

1并且设置过UserSetName时有效)

String,只读,保存文件异常信息

Boolean,只读,判断是不是文件。

方法:

方法原型说明

将上传的文件保存到服务器

Path:文件保存路径,必选。支持相对路径和绝对路

径。

tOption:文件名定义方式,必选。

默认为0,文件以程序自动生成的文件名保存;

-1,若用户设置了自定义文件名,则使用用户自

定义的文件名保存;

1,使用原文件名保存。

OverWrite:是否覆盖同名文件。

默认为true,覆盖同名文件;

false,不覆盖同名文件,若有同名文件,则重命

名文件(文件名后面加数字),必选

Boolean,文件是否保存成功

返回Boolean值;true-保存成功,false-保存失败,

失败信息保存在Exception属性

获取文件的二进制数据

Byte[],文件的二进制数据

取回文件的二进制数据,方便其他程序处理,例如

AspJpeg组件等

SaveToFile作用

(ByVal Path , byval

参数

tOption, byval OverWrite)

返回值

说明

GetBytes()作用

参数

返回值

说明

四、关于

作者:Anlige(艾恩、Aien)

主页:h ttp://

邮箱:zhanghuiguoanlige@

五、更新信息

2013-1-23:

1、增加对HTML5多文件的支持;

2、移除类中的所有中文提示及注释,方便在不同编码的文件中调用;

3、移除文件类的图片宽高属性,可以借助AspJpeg等组件实现

4、文件类增加isFile属性,判断文件类是不是包含文件

五、版权信息

本类版权归原作者所有,您可以无功能限制的免费使用本类,请保留类文件内的相关的说明信息。

非常感谢您对本类的支持。