相信很多朋友都用过艾恩ASP无组件上传插件,本文是关于它的详细使用说明文档。
一、简介
自从接触ASP就开始接触上传,看过一些上传类,但是总感觉封装的还是不够简单,因此自己尝试写一个能够用最少最简单的代码实现各种上传方式的上传类。
在学校期间就开始写,一点点的完善、优化,到现在的版本,现在的版本能适应各种上传方式。上传类的主要的功能如下:
- 自由设置最大上传大小、单文件最大上传大小
- 自由设置允许上传的文件类型
- 可设置文本的编码,以适应各种上传环境
- 内置进度条,用户可选择开启和关闭(需配合客户端程序)
- 多种错误状态处理
- 多种文件保存方式:原文件名、随机文件名、用户自定义文件名
- 自由选择是否覆盖已存在文件
- 完整保存表单数据,支持同名表单,不支持同名文件域
- 可获取常见图片格式的宽高
- 优化的上传过程
注意:
1、特别注意Form一定要加上enctype="multipart/form-data"属性,method属性值必须是post,否则上传会出错。
2、request.form()方法获取数据失效,请使用UpLoad.forms()。
3、上传前请确认保存文件的文件夹有读写权限,若不可写则会出现"文件无法写入"错误。
二、调用方法
dim Upload set Upload = new AnUpLoad
注意:上传属性的设置必须在调用Upload.GetData()之前。
简单调用示例:
dim Upload set Upload=new AnUpLoad 'Set Upload = server.CreateObject("Anasp.Anupload") Upload.SingleSize=1024*1024*1024 '设置单个文件最大上传限制,按字节计;默认为不限制 Upload.MaxSize=1024*1024*1024 '设置最大上传限制,按字节计;默认为不限制 Upload.Exe="*.bmp;*.rar;*.pdf;*.jpg;*.gif;" '设置合法扩展名 Upload.Charset="gb2312" '设置文本编码,默认为gb2312 Upload.Mode = 0 Upload.GetData() '获取并保存数据,必须调用本方法
三、类说明
上传涉及2个类:AnUpLoad(关键上传类)和UploadFileEx(文件辅助类),下面分别说明:
1、AnUpLoad(关键上传类)
属性
属性名 | 读/写 | 说明 |
---|---|---|
Mode | 只写 | Int,数据读取方式,建议使用默认值,性能比较好。 |
MaxSize | 只写 | long,允许上传的最大字节数。 |
SingleSize | 只写 | Long,允许上传的单文件的最大字节数。 |
Exe | 只写 | String,允许上传的扩展名,不设置则允许所有,*也匹配所有。例如“*.exe;*.txt;”,兼容原设置方式 |
CharSet | 只写 | String,设置文本编码,默认为GB2312。 |
ErrorID | 只读 | Int,上传过程发生错误的ID号,大于0代表上传出错 |
FileCount | 只读 | Int,上传文件的数量 |
Description | 只读 |
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 |
Version | 只读 | String,上传类/组件的版本号 |
TotalSize | 只读 | Long,上传文件的的总大小 |
LostTime | 只读 | Long,上传使用的时间,不包括保存文件的时间 |
方法
方法原型 | 说明 |
---|---|
GetData() | 处理上传的数据,没有任何参数也没有返回值 |
GetSize(Byval Size) |
作用:格式化数字为可直接识别的文件大小表示方式 参数:Size:必选,文件大小的数字表示方式 返回值:String,格式化后的文件大小的文本表示方式 说明:例如,1024返回1KB |
Forms(Byval formname) |
作用:获取表单数据 参数:formname:表单名字,必选 返回值:String,表单值 说明:若formname为-1,返回一个包含所有表单项的一个dictionary对象 |
Files(Byval formname) |
作用:获取文件类 参数:formname:文件域的名字,必选 返回值:UploadFileEx,包含文件信息的文件类。类详细说明请参考UploadFile的说明 说明:若formname为-1,返回一个包含所有上传文件类的一个dictionary对象 若上传多个name属性相同的文件,则只返回第一个匹配的文件(为兼容HTML5而修改)对象 |
Files_Muti(ByVal formname,byval index) 本方法为兼容HTML5添加 |
作用:根据Index获取文件类 参数:formname:文件域的名字,必选 index:索引,从0开始,必选 返回值:UploadFileEx,包含文件信息的文件类。类详细说明请参考UploadFile的说明 说明:若formname为-1,返回一个包含所有上传文件类的一个dictionary对象 |
QuickSave(ByVal formname,Byval SavePath) |
作用:快速保存指定文件域的文件 参数:formname:文件域的名字,必选 SavePath:保存路径 返回值:Int,成功保存的文件数量 |
2、UploadFileEx(文件类(对象),保存文件相关信息)
一些由程序自动处理的属性不建议用户写入(Size,value,IsFile,FormName)。
属性
属性名 | 说明 |
---|---|
FormName | String,只读,文件域名(name属性) |
NewName | String,可读写,程序自动生成的文件名(时间+随机数) |
LocalName | String,可读写,原文件名 |
FileName | String,只读,保存到硬盘的文件名,调用saveToFile后有效 |
UserSetName | String,可读写,用户自定义文件名,不包含扩展名 |
ContentType | String,只读,文件类型 |
Size | Long,只读,文件大小 |
value | Byte[],只读,文件数据 |
Path | String,只读文件在服务器的保存目录的路径 |
Extend | String,可读写,文件的扩展名(仅SaveToFile的tOption为-1并且设置过UserSetName时有效) |
Exception | String,只读,保存文件异常信息 |
IsFile | Boolean,只读,判断是不是文件。 |
方法
方法原型 | 说明 |
---|---|
SaveToFile(ByVal Path , byval tOption, byval OverWrite) |
作用:将上传的文件保存到服务器 参数:Path:文件保存路径,必选。支持相对路径和绝对路径。 tOption:文件名定义方式,必选。 默认为0,文件以程序自动生成的文件名保存; -1,若用户设置了自定义文件名,则使用用户自 定义的文件名保存; 1,使用原文件名保存。OverWrite:是否覆盖同名文件。 默认为true,覆盖同名文件; false,不覆盖同名文件,若有同名文件,则重命名文件(文件名后面加数字),必选 返回值:Boolean,文件是否保存成功 说明:返回Boolean值;true-保存成功,false-保存失败,失败信息保存在Exception属性 |
GetBytes() |
作用:获取文件的二进制数据 参数:无 返回值:Byte[],文件的二进制数据 说明:取回文件的二进制数据,方便其他程序处理,例如AspJpeg组件等 |
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/467.html