📄 upload_class.asp
字号:
<!--#include FILE="Upload.inc"-->
<%
'-----------------------------------------------------------------------
'--- 上传处理类模块
'--- Copyright (c) 2004 Aspsky, Inc.
'--- Mail: Sunwin@artbbs.net http://www.aspsky.net
'--- 2004-12-18
'-----------------------------------------------------------------------
'-----------------------------------------------------------------------
'-- InceptFileType : 设置上传类型属性 (以逗号分隔多个文件类型) String
'-- MaxSize : 设置上传文件大小上限 (单位:kb) Long
'-- InceptMaxFile : 设置一次上传文件最大个数 Long
'-- UploadPath : 设置保存的目录相对路径 String
'-- UploadType : 设置上传组件类型 (0=无组件上传类,1=Aspupload3.0 ,2=SA-FileUp 4.0 ,3=DvFile.Upload V1.0)
'-- SaveUpFile : 执行上传
'-- GetBinary : 设置上传是否返回文件数据流 Bloon值 : True/False
'-- ChkSessionName : 设置SESSION名,防止重复提交,SESSION名与提交的表单名要一致。
'-- RName设置文件名 : 定义文件名前缀 (如默认生成的文件名为200412230402587123.jpg
' 设置:RName="PRE_",生成的文件名为:PRE_200412230402587123.jpg)
'-----------------------------------------------------------------------
'-- 设置图片组件属性
'-- PreviewType : 设置组件(0=CreatePreviewImage组件,1=AspJpegV1.2 ,2=SoftArtisans ImgWriter V1.21)
'-- PreviewImageWidth : 设置预览图片宽度
'-- PreviewImageHeight : 设置预览图片高度
'-- DrawImageWidth : 设置水印图片或文字区域宽度
'-- DrawImageHeight : 设置水印图片或文字区域高度
'-- DrawGraph : 设置水印图片或文字区域透明度
'-- DrawFontColor : 设置水印文字颜色
'-- DrawFontFamily : 设置水印文字字体格式
'-- DrawFontSize : 设置水印文字字体大小
'-- DrawFontBold : 设置水印文字是否粗体
'-- DrawInfo : 设置水印文字信息或图片信息
'-- DrawType : 设置加载水印模式:0=不加载水印 ,1=加载水印文字 ,2=加载水印图片
'-- DrawXYType : 图片添加水印LOGO位置坐标:"0" =左上,"1"=左下,"2"=居中,"3"=右上,"4"=右下
'-- DrawSizeType : 生成预览图片大小规则:"0"=固定缩小,"1"=等比例缩小
'-----------------------------------------------------------------------
'-- 获取上传信息
'-- ObjName : 采用的组件名称
'-- Count : 上传文件总数
'-- CountSize : 上传总大小字节数
'-- ErrCodes : 错误NUMBER (默认为0)
'-- Description : 错误描述
'-----------------------------------------------------------------------
'-- CreateView Imagename,TempFilename,FileExt
' 创建预览图片过程: 原始文件的相对路径,生成预览文件相对路径,原文件后缀
'-----------------------------------------------------------------------
'-----------------------------------------------------------------------
'-- 获取文件对象属性 : UploadFiles
'-- FormName : 表单名称
'-- FileName : 生成的文件名称
'-- sFileName : 文件原始名称
'-- FilePath : 保存文件的相对路径
'-- FileSize : 文件大小
'-- FileContentType : ContentType文件类型
'-- FileType : 0=其它,1=图片,2=FLASH,3=音乐,4=电影,5=压缩,6=文档
'-- FileData : 文件数据流 (若组件不支持直接获取,则返回Null)
'-- FileExt : 文件后缀
'-- FileWidth : 图片/Flash文件宽度 (其他文件默认=-1)
'-- FileHeight : 图片/Flash文件高度 (其他文件默认=-1)
'-----------------------------------------------------------------------
'-----------------------------------------------------------------------
'-- 获取表单对象属性 : UploadForms
'-- Count : 表单数
'-- key : 表单内容
'-----------------------------------------------------------------------
'-----------------------------------------------------------------------
Class UpFile_Cls
Private UploadObj,ImageObj
Private FilePath,InceptFile,FileMaxSize,MaxFile,Upload_Type,FileInfo,IsBinary,SessionName
Private Preview_Type,View_ImageWidth,View_ImageHeight,Draw_ImageWidth,Draw_ImageHeight,Draw_Graph
Private Draw_FontColor,Draw_FontFamily,Draw_FontSize,Draw_FontBold,Draw_Info,Draw_Type,Draw_XYType,Draw_SizeType
Private RName_Str,Transition_Color
Public ErrCodes,ObjName,UploadFiles,UploadForms,Count,CountSize
'-----------------------------------------------------------------------------------
'初始化类
'-----------------------------------------------------------------------------------
Private Sub Class_Initialize
SessionName = Empty
IsBinary = False
ErrCodes = 0
Count = 0
CountSize = 0
FilePath = "./"
InceptFile = ""
FileMaxSize = -1
MaxFile = 1
Upload_Type = -1
Preview_Type = 999
ObjName = "未知组件"
View_ImageWidth = 0
View_ImageHeight = 0
Draw_FontColor = &H000000
Draw_FontFamily = "Arial"
Draw_FontSize = 10
Draw_FontBold = False
Draw_Info = "BBS.DVBBS.NET"
Draw_Type = -1
Set UploadFiles = Server.CreateObject ("Scripting.Dictionary")
Set UploadForms = Server.CreateObject ("Scripting.Dictionary")
UploadFiles.CompareMode = 1
UploadForms.CompareMode = 1
End Sub
'-----------------------------------------------------------------------------------
'销毁类
'-----------------------------------------------------------------------------------
Private Sub Class_Terminate
If IsObject(UploadObj) Then
Set UploadObj = Nothing
End If
If IsObject(ImageObj) Then
Set ImageObj = Nothing
End If
UploadFiles.RemoveAll
UploadForms.RemoveAll
Set UploadForms = Nothing
Set UploadFiles = Nothing
End Sub
'-----------------------------------------------------------------------------------
'设置上传是否返回文件数据流
'-----------------------------------------------------------------------------------
Public Property Let GetBinary(Byval Values)
IsBinary = Values
End Property
'-----------------------------------------------------------------------------------
'设置上传类型属性 (以逗号分隔多个文件类型)
'-----------------------------------------------------------------------------------
Public Property Let InceptFileType(Byval Values)
InceptFile = Lcase(Values)
End Property
'-----------------------------------------------------------------------------------
'设置上传类型属性 (以逗号分隔多个文件类型)
'-----------------------------------------------------------------------------------
Public Property Let ChkSessionName(Byval Values)
SessionName = Values
End Property
'-----------------------------------------------------------------------------------
'设置上传文件大小上限 (单位:kb)
'-----------------------------------------------------------------------------------
Public Property Let MaxSize(Byval Values)
FileMaxSize = ChkNumeric(Values) * 1024
End Property
Public Property Get MaxSize
MaxSize = FileMaxSize
End Property
'-----------------------------------------------------------------------------------
'设置每次上传文件上限
'-----------------------------------------------------------------------------------
Public Property Let InceptMaxFile(Byval Values)
MaxFile = ChkNumeric(Values)
End Property
'-----------------------------------------------------------------------------------
'设置上传目录路径
'-----------------------------------------------------------------------------------
Public Property Let UploadPath(Byval Path)
FilePath = Replace(Path,Chr(0),"")
If Right(FilePath,1)<>"/" Then FilePath = FilePath & "/"
End Property
Public Property Get UploadPath
UploadPath = FilePath
End Property
'-----------------------------------------------------------------------------------
'获取错误信息
'-----------------------------------------------------------------------------------
Public Property Get Description
Select Case ErrCodes
Case 1 : Description = "不支持 " & ObjName & " 上传,服务器可能未安装该组件。"
Case 2 : Description = "暂未选择上传组件!"
Case 3 : Description = "请先选择你要上传的文件!"
Case 4 : Description = "文件大小超过了限制 " & (FileMaxSize\1024) & "KB!"
Case 5 : Description = "文件类型不正确!"
Case 6 : Description = "已达到上传数的上限!"
Case 7 : Description = "请不要重复提交!"
Case Else
Description = Empty
End Select
End Property
'-----------------------------------------------------------------------------------
'设置文件名前缀
'-----------------------------------------------------------------------------------
Public Property Let RName(Byval Values)
RName_Str = Values
End Property
'-----------------------------------------------------------------------------------
'设置上传组件属性
'-----------------------------------------------------------------------------------
Public Property Let UploadType(Byval Types)
Upload_Type = Types
If Upload_Type = "" or Not IsNumeric(Upload_Type) Then
Upload_Type = -1
End If
End Property
'-----------------------------------------------------------------------------------
'设置上传图片组件属性
'-----------------------------------------------------------------------------------
Public Property Let PreviewType(Byval Types)
Preview_Type = Types
On Error Resume Next
If Preview_Type = "" or Not IsNumeric(Preview_Type) Then
Preview_Type = 999
Else
If PreviewType <> 999 Then
Select Case Preview_Type
Case 0
'---------------------CreatePreviewImage---------------
ObjName = "CreatePreviewImage组件"
Set ImageObj = Server.CreateObject("CreatePreviewImage.cGvbox")
Case 1
'---------------------AspJpegV1.2---------------
ObjName = "AspJpegV1.2组件"
Set ImageObj = Server.CreateObject("Persits.Jpeg")
Case 2
'---------------------SoftArtisans ImgWriter V1.21---------------
ObjName = "SoftArtisans ImgWriter V1.21组件"
Set ImageObj = Server.CreateObject("SoftArtisans.ImageGen")
Case Else
Preview_Type = 999
End Select
If Err.Number<>0 Then
ErrCodes = 1
End If
End If
End If
End Property
Public Property Get PreviewType
PreviewType = Preview_Type
End Property
'-----------------------------------------------------------------------------------
'设置预览图片宽度属性
'-----------------------------------------------------------------------------------
Public Property Let PreviewImageWidth(Byval Values)
View_ImageWidth = ChkNumeric(Values)
End Property
'-----------------------------------------------------------------------------------
'设置预览图片高度属性
'-----------------------------------------------------------------------------------
Public Property Let PreviewImageHeight(Byval Values)
View_ImageHeight = ChkNumeric(Values)
End Property
'-----------------------------------------------------------------------------------
'设置水印图片或文字区域宽度属性
'-----------------------------------------------------------------------------------
Public Property Let DrawImageWidth(Byval Values)
Draw_ImageWidth = ChkNumeric(Values)
End Property
'-----------------------------------------------------------------------------------
'设置水印图片或文字区域高度属性
'-----------------------------------------------------------------------------------
Public Property Let DrawImageHeight(Byval Values)
Draw_ImageHeight = ChkNumeric(Values)
End Property
'-----------------------------------------------------------------------------------
'设置水印图片或文字区域透明度属性
'-----------------------------------------------------------------------------------
Public Property Let DrawGraph(Byval Values)
If IsNumeric(Values) Then
Draw_Graph = Formatnumber(Values,2)
Else
Draw_Graph = 1
End If
End Property
'-----------------------------------------------------------------------------------
'设置水印图片透明度去除底色值
'-----------------------------------------------------------------------------------
Public Property Let TransitionColor(Byval Values)
If Values<>"" or Values<>"0" Then
Transition_Color = Replace(Values,"#","&h")
End If
End Property
'-----------------------------------------------------------------------------------
'设置水印文字颜色
'-----------------------------------------------------------------------------------
Public Property Let DrawFontColor(Byval Values)
If Values<>"" or Values<>"0" Then
Draw_FontColor = Replace(Values,"#","&h")
End If
End Property
'-----------------------------------------------------------------------------------
'设置水印文字字体格式
'-----------------------------------------------------------------------------------
Public Property Let DrawFontFamily(Byval Values)
Draw_FontFamily = Values
End Property
'-----------------------------------------------------------------------------------
'设置水印文字字体大小
'-----------------------------------------------------------------------------------
Public Property Let DrawFontSize(Byval Values)
Draw_FontSize = Values
End Property
'-----------------------------------------------------------------------------------
'设置水印文字是否粗体 Boolean
'-----------------------------------------------------------------------------------
Public Property Let DrawFontBold(Byval Values)
Draw_FontBold = ChkBoolean(Values)
End Property
'-----------------------------------------------------------------------------------
'设置水印文字信息或图片信息
'-----------------------------------------------------------------------------------
Public Property Let DrawInfo(Byval Values)
Draw_Info = Values
End Property
'-----------------------------------------------------------------------------------
'加载模式:0=不加载水印 ,1=加载水印文字 ,2=加载水印图片
'-----------------------------------------------------------------------------------
Public Property Let DrawType(Byval Values)
Draw_Type = ChkNumeric(Values)
End Property
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -