📄 ixs_clsupload.asp
字号:
<!--#include file="iXs_ClsFileUp.asp" -->
<%
'=========================================================
' 文件:iXs_ClsUpLoad.asp
' 功能:爱雪儿通用上传管理类
' 版本:爱雪儿图文管理系统 PAMS Version 1.1.0
' 时间:2006-01-05
' 作者:Guidy
' 版权:爱雪儿工作室 [iXuEr Studio]
'=========================================================
' Copyright (C) 2005-2008 iXuEr.Net All Rights Reserved .
' 官方网站:http://www.ixuer.net/
' 技术论坛:http://bbs.ixuer.net/
' 电子信箱:guidy@114xp.cn
'=========================================================
' 此管理类修改自动网论坛,以下是其原版权标识
'-----------------------------------------------------------------------
'--- 上传处理类模块
'--- 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设置文件名 : 定义文件名前缀 (如默认生成的文件名为2005082212195045236.jpg
' 设置:RName="PRE_",生成的文件名为:PRE_2005082212195045236.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 : 生成的文件名称
'-- FilePath : 保存文件的相对路径
'-- FileSize : 文件大小
'-- FileContentType : ContentType文件类型
'-- FileType : 0=其它,1=图片,2=FLASH,3=音乐,4=电影
'-- FileData : 文件数据流 (若组件不支持直接获取,则返回Null)
'-- FileExt : 文件后缀
'-- FileWidth : 图片/Flash文件宽度 (其他文件默认=-1)
'-- FileHeight : 图片/Flash文件高度 (其他文件默认=-1)
'-----------------------------------------------------------------------
'-----------------------------------------------------------------------
'-- 获取表单对象属性 : UploadForms
'-- Count : 表单数
'-- key : 表单内容
'-----------------------------------------------------------------------
'-----------------------------------------------------------------------
Class iXuEr_UpFile
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
Public p_UpLoadPID, OldFileName, DiyFileName, FormatType, AutoDir, UpLoaddingDataDir
Public FileExt_1, FileExt_2, FileExt_3, FileExt_4, FileExt_5, FileExt_6
' ============================================
' 返回版本信息
' ============================================
Public Property Get Version
Version = "爱雪儿上传管理类 Version 3.0.0"
End Property
' ============================================
' 初始化类
' ============================================
Private Sub Class_Initialize
SessionName = Empty
IsBinary = False
ErrCodes = 0
Count = 0
AutoDir = 0
CountSize = 0
FilePath = "./"
InceptFile = ""
OldFileName = ""
FormatType = 1
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.IXUER.NET"
Draw_Type = -1
FileExt_1 = "jpg|jpeg|gif|bmp|png|tif|iff" ' 图像类文件类型
FileExt_2 = "swf|swi" ' 动画文件类型
FileExt_3 = "mp3|m3u|wav|wma|wax|asx|asf|mp2|au|aif|aiff|mid|midi|rmi" ' 音频文件类型 全部采用Windows Media Player播放
FileExt_4 = "rm|rmvb|ram|ra|mov" ' RealPlayer 文件类型
FileExt_5 = "mpg|mpeg|mpv|mps|m2v|m1v|mpe|mpa|avi|wmv|wm|wmx|wvx" ' Windows Media 视频文件类型
FileExt_6 = "asa|asp|bat|cmd|code|com|db|dll|doc|exe|fla|ftp|h|hlp|htm|html|inc|info|ini|js|log|mdb|pdf|php|pic|ppt|rar|real|torrent|txt|xls|xml|zip" ' 其他文件类型
Set UploadFiles = Server.CreateObject(ServerObject_004)
Set UploadForms = Server.CreateObject(ServerObject_004)
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
' ============================================
' 设置上传ID,用户进度条
' ============================================
Public Property Let UpLoadPID(Byval ID)
p_UpLoadPID = ID
End Property
Public Property Get UpLoadPID()
UpLoadPID = p_UpLoadPID
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 8 : Description = "数据大小超过限制,并包含非法文件类型,上传失败!"
Case 9 : 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(ServerObject_015)
Case 1
'---------------------AspJpegV1.2---------------
ObjName = "AspJpegV1.2组件"
Set ImageObj = Server.CreateObject(ServerObject_016)
Case 2
'---------------------SoftArtisans ImgWriter V1.21---------------
ObjName = "SoftArtisans ImgWriter V1.21组件"
Set ImageObj = Server.CreateObject(ServerObject_017)
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
' ============================================
' 图片添加水印LOGO位置坐标:"0" =左上,"1"=左下,"2"=居中,"3"=右上,"4"=右下
' ============================================
Public Property Let DrawXYType(Byval Values)
Draw_XYType = Values
End Property
' ============================================
' 生成预览图片大小规则:"0"=固定缩小,"1"=等比例缩小
' ============================================
Public Property Let DrawSizeType(Byval Values)
Draw_SizeType = Values
End Property
' ============================================
' 检测是否数字型
' ============================================
Private Function ChkNumeric(Byval Values)
If Values<>"" And IsNumeric(Values) Then
ChkNumeric = Int(Values)
Else
ChkNumeric = 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -