DVFILE-UP ASP 上传组件 V1.0

(一)上传组件简介
   DVFILE-UP v1.0 上传组件是动网先锋开发组开发,特点是性能稳定、安全及功能全面,接口简捷方便,满足各种不同类型ASP网站的上传需求。
   为感谢广大DV爱好者,本组件版本为自由传播的免费绿色软件,任何人可在学习、商业应用中使用本组件。
官方网站:WWW.ASPSKY.NET
官方论坛:BBS.DVBBS.NET
免费下载:http://www.artbbs.net/download/DvFile-Up.exe
详细联系方法:www.aspsky.cn/email.asp
Email邮箱:fssunwin@aspsky.net

(二)组件功能介绍
支持单个或多个批量文件上传。
支持上传的文件自定义改名保存。
支持限制文件上传的大小。
支持限制文件上传的类型。
支持获取上传文件的详细信息及MIME类型。如gif文件为IMAGES/GIF
支持将文件内容保存进数据库,如上载图形文件、DOC文件等各类Windows文件。
支持从数据库中读取上载文件到数据库中的记录,如显示图形文件、DOC文件等各类Windows文件。
支持直接获取上传文件总数,总消耗时间,总文件大小等信息。

(三)组件安装说明
版本信息
最新版本: DvFile-Up Version 1.0
文件名称: DvFile.dll
组件大小: 48 KB
运行环境: Windows NT, Windows 2000, Windows XP Professional, Windows .NET Server Family With IIS
安装操作
快速安装: 直接执行BIN目录下的install.bat文件,自动完装完成。
手工安装: 使用 Regsvr32 DvFile.dll 命令注册!
快速卸装: 直接执行BIN目录下的Uninstall.bat文件,然后重启IIS服务,自动卸装完成。
手工卸装: 使用 Regsvr32 /u DvFile.dll 命令注册!

(四)组件对象说明
组件公共属性及方法
File 文件域的集合
Form 表单域的集合
Err 返回错误的数值。
-1 表示成功,
1 表示没有上传数据,
2 表示文件大小超过了限制,
3 表示非法的上传类型,
4 表示所上传的类型受系统限制,
5 表示发生意外错误,上传中止。
Version 获取组件的版本信息。
InceptFileType 上传文件类型限制 以 “,” 号分隔
MaxSize 上传文件大小限制 :-1为无限 (单位:字节)
Install 上传加载,分析上传数据
Count 上传文件总数
UseTime 上传总消耗时间 (单位:毫秒)
TotalBytes 上传总字节数 (单位:字节)
SaveToFile(Path As String,Count As Long) 指定写入上传客户端文件方法。Path为服务器的完整路径;Count为指定文件的单位(注:只能是已经存在的目录)
FileData(Count As Long) 获取指定文件内容数据,Count为指定文件单位
文件属性
FileName 原文件名
FormName 文件表单名
FilePath 文件来源路径
FileType 文件MIME类型(默认大写)
FileExt 文件后缀(默认小写,如:jpg/gif/bmp,txt)
FileWidth 图像宽度 (单位:象素)
FileHeight 图像高度 (单位:象素)
FileSize 文件大小 (单位:字节)

(五)组件使用说明
组件ProgId:DvFile.Upload
说明:程序ID。用于创建应用程序对象范例
范例:
Set Upload = Server.CreateObject("DvFile.Upload")
.InceptFileType
说明:设置上传文件类型限制,以 “,” 号分隔;没有返回值
范例:只允许上传jpg,gif,png,bmp,jpeg等格式的文件。
Upload.InceptFileType = "jpg,gif,png,bmp,jpeg"
.MaxSize
说明:设置上传文件限制大小 :-1为无限,单位 为字节,没有返回值
范例:上限限制为100KB
Upload.MaxSize = 102400
.Install
说明:执行加载并分析上传数据过程
范例:
Upload.Install
.SaveToFile PATH,FormName
说明:执行保存上传文件至服务器;PATH :保存到服务器的物理路径,FormName 为文件表单个数
范例:如上传1个文件,保存至D:\TempFile\目录下,文件名为123.gif
Upload.SaveToFile "D:\TempFile\123.gif",1
.Count
说明:返还上传文件总数,类型为数字型
范例:
共上传"& Upload.Count &"个文件
.TotalBytes
说明:返还上传文件大小总字节数,类型为数字型
范例:
共上传"& Upload.TotalBytes &"字节
.UseTime
说明:返还上传文件总消耗时间,类型为数字型
范例:
总执行时间:"& Upload.UseTime &" 亳秒

(六)组件的应用范例
上传表单
说明:在表单文件中建立一个表单,表单中有数个文件控件和其他控件
范例:以上传一个文件控件
<form METHOD="POST" ENCTYPE="multipart/form-data" ACTION="demo.asp">
选择文件:<input type="file" name="file1">&nbsp;<input type="submit" value="上载">
</form>
保存上传文件处理
说明:在服务器端脚本中使用组件过程
范例:适用上传多个文件,定义上传目录为“TempUpload/”,文件名以时间日期明名。
<%
Dim FormPath
FormPath = "TempUpload/" ''定义上传路径
Upload_0

Sub Upload_0()
Dim Upload
Dim File,FormName,FileName,FileExt,SaveFile
Dim CountSize,UseTime
CountSize = 0

'// 建立上传对象
Set Upload = Server.CreateObject("DvFile.Upload")

'// 上传文件类型限制 以 “,” 号分隔
Upload.InceptFileType = "jpg,gif,png,bmp,jpeg"

'// 上传文件类型限制 以 “,” 号分隔限制大小 :-1为无限,单位 B
Upload.MaxSize = -1

'// 加载上传数据
Upload.Install

'// 错误参数
If Upload.Err > 0 Then
''输出错误信息
Select Case Upload.Err

'// 错误参数请先选择你要上传的文件
Case 1 : Response.Write Upload.Description

'// 文件大小超过了限制 "&Upload.MaxSize/1024&"K
Case 2 : Response.Write Upload.Description

'// 非法的上传类型
Case 3 : Response.Write Upload.Description

'// 所上传的类型受系统限制
Case 4 : Response.Write Upload.Description

'// 参数有误,上传意外中止
Case 5 : Response.Write Upload.Description

End Select
Response.Write " [ <a href=# onclick=history.go(-1)>重新上传</a> ]"
Exit Sub
Else

'// 列出所有上传了的文件
For Each FormName In Upload.File

'// 生成一个文件对象
Set File = Upload.File(FormName)

'// 获取上传文件后缀名
FileExt = File.FileExt

'// 格式化上传路径
FormPath = FormatPath(FormPath)

'// 定义文件名
FileName = FormatName(FileExt)
SaveFile = FormPath & FileName

'// 如果 FileSize > 0 说明有文件数据
If File.FileSize>0 Then

'// 保存文件
Upload.SaveToFile Server.Mappath(SaveFile),FormName

'// 输出信息:
Response.Write "原文件名:" & File.FileName
Response.Write "<BR>"
Response.Write "文件表单名:" & File.FormName
Response.Write "<BR>"
Response.Write "文件来源路径:" & File.FilePath
Response.Write "<BR>"
Response.Write "文件名:" & FileName
Response.Write "<BR>"
Response.Write "文件类型(File.FileType):" & File.FileType
Response.Write "<BR>"
Response.Write "文件后缀(File.FileExt):" & File.FileExt
Response.Write "<BR>"
Response.Write "图像宽(File.FileWidth):" & File.FileWidth
Response.Write "<BR>"
Response.Write "图像高(File.FileHeight):" & File.FileHeight
Response.Write "<BR>"
Response.Write "文件大小(File.FileSize):" & File.FileSize
Response.Write "<BR>"
Response.Write "保存路径:" & SaveFile
Response.Write "<BR>"
Response.Write "图片上传成功!<p>"
End If
Set File=Nothing
Next
Response.Write "共上传"& Upload.Count &"个文件 ;By "& Upload.Version &"<p>"
End If

'// 总消耗时间
UseTime = Upload.UseTime

'// 上传总字节数
CountSize = Upload.TotalBytes
Response.Write "总执行时间:"& UseTime &"亳秒,平均速度:"& FormatNumber(CountSize/UseTime,2,-1,0,0) &" KB/s."
Set Upload=Nothing
End Sub

Function FormatPath(Path)
FormatPath = Replace(Path,Chr(0),"")
End Function

Function FormatName(FileExt)
Dim RanNum
Randomize
RanNum = Int(90000*rnd)+10000
FormatName = Year(now)&Month(now)&Day(now)&Hour(now)&Minute(now)&Second(now)&RanNum&"."&FileExt
End Function
%>


© Copyright 2004 Aspsky, Inc. All Rights Reserved.