Hplus(H+) 后台主题 UI 框架
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
<%@ LANGUAGE = "VBSCRIPT" CODEPAGE = "65001"%>
|
||||
<%
|
||||
Response.Charset = "UTF-8" '指定输出网页编码
|
||||
Server.ScriptTimeOut = 5000 '脚本执行超时最大时限
|
||||
'温馨提示:
|
||||
' 在flash的参数名upload_url中可自行定义一些参数(请求方式:POST),定义后在服务器端获取即可,比如可以应用到用户验证,文件的保存名等。
|
||||
' 如下代码在上传接口Upload.asp中定义了一个user=xxx的参数:
|
||||
' var swf = new fullAvatarEditor("swf", {
|
||||
' id: "swf",
|
||||
' upload_url: "Upload.asp?user=xxx"
|
||||
' });
|
||||
' 在本页即可用Upload.Form("user")获取xxx。
|
||||
' 本示例未作极致的用户体验与严谨的安全设计(如用户直接访问此页时该如何,万一客户端数据不可信时验证文件的大小、类型等),只保证正常情况下无误,请阁下注意。
|
||||
'艾恩ASP无组件上传类 V13.01.16
|
||||
%>
|
||||
<!--#include file="Upload.asp.cls"-->
|
||||
<%
|
||||
'生成指定长度的随机码。
|
||||
Function CreateRandomCode(ByVal Length)
|
||||
Randomize
|
||||
Dim RandCode : RandCode = ""
|
||||
Dim RandChar : RandChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
|
||||
Dim RandCharArray : RandCharArray = Split(RandChar, ",")
|
||||
Dim i
|
||||
For i = 1 To Length
|
||||
RandCode = RandCode & RandCharArray(Int(36 * Rnd))
|
||||
Next
|
||||
CreateRandomCode = RandCode
|
||||
End Function
|
||||
|
||||
Function GetVirtualPath(ByVal path)
|
||||
Dim webRoot : webRoot = Server.MapPath("/")
|
||||
Dim physicalPath : physicalPath = Server.MapPath(path)
|
||||
GetVirtualPath = Replace(physicalPath, webRoot, "")
|
||||
GetVirtualPath = Replace(GetVirtualPath, "\", "/")
|
||||
End Function
|
||||
|
||||
'取服务器时间+8位随机码作为部分文件名,确保文件名无重复。
|
||||
Dim FileName : FileName = Year(NowTime) & Right("0" & Month(NowTime), 2) & Right("0" & Day(NowTime), 2) & Right("0" & Hour(NowTime), 2) & Right("0" & Minute(NowTime), 2) & Right("0" & Second(NowTime), 2) & Left(Replace(Right(timer(), 2), ".", "") & "0", 2) & CreateRandomCode(8)
|
||||
|
||||
Dim Msg '表示自定义的附加返回消息。
|
||||
Dim Success : Success = "false" '表示图片是否已上传成功。
|
||||
Dim SavePath : SavePath = "upload" '保存在服务器的虚拟路径
|
||||
Dim SourceUrl '表示原始图片的保存地址。
|
||||
DIM AvatarUrls '表示所有头像图片的保存地址,多个之间使用英文的逗号“,”分隔。
|
||||
|
||||
Dim SuccessNum : SuccessNum = 0
|
||||
|
||||
On Error Resume Next
|
||||
'建立上传对象
|
||||
Dim Upload
|
||||
Set Upload = new AnUpLoad
|
||||
Upload.Charset = "UTF-8" '设置字符集
|
||||
Upload.Exe = "*.bmp;*.jpg;*.gif;*.png;" '设置允许上传的文件类型
|
||||
Upload.SingleSize = 1024 * 1024 * 2 '设置单个文件的最大上传限制,按字节计算,该处为2MB
|
||||
Upload.GetData()
|
||||
If Upload.ErrorID > 0 Then
|
||||
Msg = Upload.Description
|
||||
Else
|
||||
'定义一个变量用以储存当前头像的序号
|
||||
Dim AvatarNumber : AvatarNumber = 1
|
||||
Dim i : i = 1
|
||||
'遍历所有文件域
|
||||
For Each F In Upload.Files(-1)
|
||||
Dim File
|
||||
Set File = Upload.Files(F)
|
||||
If File.IsFile Then
|
||||
'如果 file 域的名称是以__source(可在插件配置参数中自定义,参数名:src_field_name)打头,说明是原始图片,如果在插件中定义可以上传的话,可在此处理。
|
||||
If InStr(File.FormName, "__source") = 1 Then
|
||||
'保存的文件名,不包括扩展名
|
||||
File.UserSetName = "asp_source_" & FileName
|
||||
'保存的文件扩展名,不含点“.”
|
||||
File.Extend = "jpg"
|
||||
'当前头像基于原图的初始化参数(即只有上传原图时才会发送该数据),用于修改头像时保证界面的视图跟保存头像时一致,提升用户体验度。
|
||||
'修改头像时设置默认加载的原图url为当前原图url+该参数即可,可直接附加到原图url中储存,不影响图片呈现。
|
||||
Dim InitParams : InitParams = Upload.Forms("__initParams")
|
||||
SourceUrl = GetVirtualPath(SavePath & "/" & File.UserSetName & "." & File.Extend) & InitParams
|
||||
If File.SaveToFile(SavePath, -1, True) Then
|
||||
SuccessNum = SuccessNum + 1
|
||||
Else
|
||||
Msg = "原图片保存失败,错误信息:" & File.Exception '错误信息请参考同目录中的PDF文件
|
||||
End If
|
||||
'否则就是头像图片(file 域的名称:__avatar1,2,3...,可在插件配置参数中自定义,参数名:avatar_field_names)
|
||||
Else
|
||||
'保存的文件名,不包括扩展名
|
||||
File.UserSetName = "asp_avatar" & AvatarNumber & "_" & FileName
|
||||
'保存的文件扩展名,不含点“.”
|
||||
File.Extend = "jpg"
|
||||
If File.SaveToFile(SavePath, -1, True) Then
|
||||
SuccessNum = SuccessNum + 1
|
||||
AvatarUrls = AvatarUrls & """" & GetVirtualPath(SavePath & "/" & File.FileName & "." & File.Extend) & ""","
|
||||
AvatarNumber = AvatarNumber + 1
|
||||
Else
|
||||
Msg = "头像保存失败,错误信息:" & File.Exception '错误信息请参考同目录中的PDF文件
|
||||
End If
|
||||
End If
|
||||
Set File = Nothing
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
'释放上传对象
|
||||
Set Upload = Nothing
|
||||
|
||||
If Err.Number <> 0 Then Err.Clear
|
||||
|
||||
If SuccessNum > 0 Then
|
||||
Success = "true"
|
||||
End If
|
||||
|
||||
If AvatarUrls <> "" Then
|
||||
AvatarUrls = Left(AvatarUrls, Len(AvatarUrls) - 1)
|
||||
End If
|
||||
'返回上传结果(json)
|
||||
Response.Write "{""success"":" & Success & ", ""msg"":""" & Msg & """, ""sourceUrl"":""" & SourceUrl & """, ""avatarUrls"":[" & AvatarUrls & "]}"
|
||||
%>
|
||||
@@ -0,0 +1,554 @@
|
||||
<%
|
||||
'=========================================================
|
||||
'Class: AnUpLoad
|
||||
'Author: Anlige
|
||||
'Version:AienAspUpload V13.12.09
|
||||
'CreationDate: 2008-04-12
|
||||
'ModificationDate: 2013-12-09
|
||||
'Homepage: http://dev.mo.cn
|
||||
'Email: zhanghuiguoanlige@126.com
|
||||
'QQ: 1034555083
|
||||
'=========================================================
|
||||
Dim StreamT
|
||||
Class AnUpLoad
|
||||
Private Form, Fils
|
||||
Private vCharSet, vMaxSize, vSingleSize, vErr, vVersion, vTotalSize, vExe, vErrExe,vboundary, vLostTime, vMode, vFileCount,StreamOpened
|
||||
private vMuti,vServerVersion
|
||||
Public Property Let Mode(ByVal value)
|
||||
vMode = value
|
||||
End Property
|
||||
|
||||
Public Property Let MaxSize(ByVal value)
|
||||
vMaxSize = value
|
||||
End Property
|
||||
|
||||
Public Property Let SingleSize(ByVal value)
|
||||
vSingleSize = value
|
||||
End Property
|
||||
|
||||
Public Property Let Exe(ByVal value)
|
||||
vExe = LCase(value)
|
||||
vExe = replace(vExe,"*.","")
|
||||
vExe = replace(vExe,";","|")
|
||||
End Property
|
||||
|
||||
Public Property Let CharSet(ByVal value)
|
||||
vCharSet = value
|
||||
End Property
|
||||
|
||||
Public Property Get ErrorID()
|
||||
ErrorID = vErr
|
||||
End Property
|
||||
|
||||
Public Property Get FileCount()
|
||||
FileCount = Fils.count
|
||||
End Property
|
||||
|
||||
Public Property Get Description()
|
||||
Description = GetErr(vErr)
|
||||
End Property
|
||||
|
||||
Public Property Get Version()
|
||||
Version = vVersion
|
||||
End Property
|
||||
|
||||
Public Property Get TotalSize()
|
||||
TotalSize = vTotalSize
|
||||
End Property
|
||||
|
||||
Public Property Get LostTime()
|
||||
LostTime = vLostTime
|
||||
End Property
|
||||
|
||||
Private Sub Class_Initialize()
|
||||
set Form = server.createobject("Scripting.Dictionary")
|
||||
set Fils = server.createobject("Scripting.Dictionary")
|
||||
Set StreamT = server.CreateObject("Adodb.stream")
|
||||
vVersion = "AienAspUpload V13.12.09"
|
||||
vMaxSize = -1
|
||||
vSingleSize = -1
|
||||
vErr = -1
|
||||
vExe = ""
|
||||
vTotalSize = 0
|
||||
vCharSet = "gb2312"
|
||||
vMode = 0
|
||||
StreamOpened=false
|
||||
vMuti="_" & Getname() & "_"
|
||||
vServerVersion = 6.0
|
||||
Dim t_
|
||||
t_ = lcase(Request.ServerVariables("SERVER_SOFTWARE"))
|
||||
t_ = replace(t_,"microsoft-iis/","")
|
||||
if isnumeric(t_) then vServerVersion = cdbl(t_)
|
||||
End Sub
|
||||
|
||||
Private Sub Class_Terminate()
|
||||
Dim f
|
||||
Form.RemoveAll()
|
||||
For each f in Fils
|
||||
Fils(f).value=empty
|
||||
Set Fils(f) = Nothing
|
||||
Next
|
||||
Fils.RemoveAll()
|
||||
Set Form = Nothing
|
||||
Set Fils = Nothing
|
||||
if StreamOpened then StreamT.close()
|
||||
Set StreamT = Nothing
|
||||
End Sub
|
||||
|
||||
Public Sub GetData()
|
||||
Dim time1
|
||||
time1 = timer()
|
||||
Dim value, str, bcrlf, fpos, sSplit, slen, istart,ef
|
||||
Dim TotalBytes,tempdata,BytesRead,ChunkReadSize,PartSize,DataPart,formend, formhead, startpos, endpos, formname, FileName, fileExe, valueend, NewName,localname,type_1,contentType
|
||||
TotalBytes = Request.TotalBytes
|
||||
ef = false
|
||||
If checkEntryType = false Then ef = true : vErr = 2
|
||||
If vServerVersion>=6 Then
|
||||
If Not ef Then
|
||||
If vMaxSize > 0 And TotalBytes > vMaxSize Then ef = true : vErr = 1
|
||||
End If
|
||||
End If
|
||||
If ef Then Exit Sub
|
||||
If vMode = 0 Then
|
||||
vTotalSize = 0
|
||||
StreamT.Type = 1
|
||||
StreamT.Mode = 3
|
||||
StreamT.Open
|
||||
StreamOpened = true
|
||||
BytesRead = 0
|
||||
ChunkReadSize = 1024 * 16
|
||||
Do While BytesRead < TotalBytes
|
||||
PartSize = ChunkReadSize
|
||||
If PartSize + BytesRead > TotalBytes Then PartSize = TotalBytes - BytesRead
|
||||
DataPart = Request.BinaryRead(PartSize)
|
||||
StreamT.Write DataPart
|
||||
BytesRead = BytesRead + PartSize
|
||||
Loop
|
||||
StreamT.Position = 0
|
||||
tempdata = StreamT.Read
|
||||
Else
|
||||
tempdata = Request.BinaryRead(TotalBytes)
|
||||
End If
|
||||
bcrlf = ChrB(13) & ChrB(10)
|
||||
fpos = InStrB(1, tempdata, bcrlf)
|
||||
sSplit = MidB(tempdata, 1, fpos - 1)
|
||||
slen = LenB(sSplit)
|
||||
istart = slen + 2
|
||||
Do
|
||||
formend = InStrB(istart, tempdata, bcrlf & bcrlf)
|
||||
if formend<=0 then exit do
|
||||
formhead = MidB(tempdata, istart, formend - istart)
|
||||
str = Bytes2Str(formhead)
|
||||
startpos = InStr(str, "name=""") + 6
|
||||
if startpos<=0 then exit do
|
||||
endpos = InStr(startpos, str, """")
|
||||
if endpos<=0 then exit do
|
||||
formname = LCase(Mid(str, startpos, endpos - startpos))
|
||||
valueend = InStrB(formend + 3, tempdata, sSplit)
|
||||
if valueend<=0 then exit do
|
||||
If InStr(str, "filename=""") > 0 Then
|
||||
formname = formname & vMuti & "0"
|
||||
startpos = InStr(str, "filename=""") + 10
|
||||
endpos = InStr(startpos, str, """")
|
||||
type_1=instr(endpos,lcase(str),"content-type")
|
||||
contentType=trim(mid(str,type_1+13))
|
||||
FileName = Mid(str, startpos, endpos - startpos)
|
||||
If Trim(FileName) <> "" Then
|
||||
FileName = Replace(FileName, "/", "\")
|
||||
FileName = Replace(FileName, chr(0), "")
|
||||
LocalName = FileName
|
||||
FileName = Mid(FileName, InStrRev(FileName, "\") + 1)
|
||||
If instr(FileName,".")>0 Then
|
||||
fileExe = Split(FileName, ".")(UBound(Split(FileName, ".")))
|
||||
else
|
||||
fileExe = ""
|
||||
End If
|
||||
If vExe <> "" Then
|
||||
If checkExe(fileExe) = True Then
|
||||
vErr = 3
|
||||
vErrExe = fileExe
|
||||
tempdata = empty
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
NewName = Getname()
|
||||
NewName = NewName & "." & fileExe
|
||||
vTotalSize = vTotalSize + valueend - formend - 6
|
||||
If vSingleSize > 0 And (valueend - formend - 6) > vSingleSize Then
|
||||
vErr = 5
|
||||
tempdata = empty
|
||||
Exit Sub
|
||||
End If
|
||||
If vMaxSize > 0 And vTotalSize > vMaxSize Then
|
||||
vErr = 1
|
||||
tempdata = empty
|
||||
Exit Sub
|
||||
End If
|
||||
If Fils.Exists(formname) Then formname = GetNextFormName(formname)
|
||||
Dim fileCls:set fileCls= new UploadFileEx
|
||||
fileCls.ContentType=contentType
|
||||
fileCls.Size = (valueend - formend - 6)
|
||||
fileCls.Position = (formend + 3)
|
||||
fileCls.FormName = formname
|
||||
fileCls.NewName = NewName
|
||||
fileCls.FileName = FileName
|
||||
fileCls.LocalName = FileName
|
||||
fileCls.extend=split(NewName,".")(ubound(split(NewName,".")))
|
||||
Fils.Add formname, fileCls
|
||||
Set fileCls = Nothing
|
||||
End If
|
||||
Else
|
||||
value = MidB(tempdata, formend + 4, valueend - formend - 6)
|
||||
If Form.Exists(formname) Then
|
||||
Form(formname) = Form(formname) & "," & Bytes2Str(value)
|
||||
Else
|
||||
Form.Add formname, Bytes2Str(value)
|
||||
End If
|
||||
End If
|
||||
istart = valueend + 2 + slen
|
||||
Loop Until (istart + 2) >= LenB(tempdata)
|
||||
vErr = 0
|
||||
tempdata = empty
|
||||
vLostTime = FormatNumber((timer-time1)*1000,2)
|
||||
End Sub
|
||||
|
||||
Private Function CheckExe(ByVal ex)
|
||||
Dim notIn: notIn = True
|
||||
If vExe="*" then
|
||||
notIn=false
|
||||
elseIf InStr(1, vExe, "|") > 0 Then
|
||||
Dim tempExe: tempExe = Split(vExe, "|")
|
||||
Dim I: I = 0
|
||||
For I = 0 To UBound(tempExe)
|
||||
If LCase(ex) = tempExe(I) Then
|
||||
notIn = False
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
If vExe = LCase(ex) Then
|
||||
notIn = False
|
||||
End If
|
||||
End If
|
||||
checkExe = notIn
|
||||
End Function
|
||||
|
||||
Public Function GetSize(ByVal Size)
|
||||
If Size < 1024 Then
|
||||
GetSize = FormatNumber(Size, 2) & "B"
|
||||
ElseIf Size >= 1024 And Size < 1048576 Then
|
||||
GetSize = FormatNumber(Size / 1024, 2) & "KB"
|
||||
ElseIf Size >= 1048576 Then
|
||||
GetSize = FormatNumber((Size / 1024) / 1024, 2) & "MB"
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Function Bytes2Str(ByVal byt)
|
||||
If LenB(byt) = 0 Then
|
||||
Bytes2Str = ""
|
||||
Exit Function
|
||||
End If
|
||||
Dim mystream, bstr
|
||||
Set mystream =server.createobject("ADODB.Stream")
|
||||
mystream.Type = 2
|
||||
mystream.Mode = 3
|
||||
mystream.Open
|
||||
mystream.WriteText byt
|
||||
mystream.Position = 0
|
||||
mystream.CharSet = vCharSet
|
||||
mystream.Position = 2
|
||||
bstr = mystream.ReadText()
|
||||
mystream.Close
|
||||
Set mystream = Nothing
|
||||
Bytes2Str = bstr
|
||||
End Function
|
||||
|
||||
Private Function GetErr(ByVal Num)
|
||||
Select Case Num
|
||||
Case 0
|
||||
GetErr = "COMPLETE"
|
||||
Case 1
|
||||
GetErr = "ERROR_FILE_EXCEEDS_MAXSIZE_LIMIT"
|
||||
Case 2
|
||||
GetErr = "ERROR_INVALID_ENCTYPEOR_METHOD"
|
||||
Case 3
|
||||
GetErr = "ERROR_INVALID_FILETYPE(." & ucase(vErrExe) & ")"
|
||||
Case 5
|
||||
GetErr = "ERROR_FILE_EXCEEDS_SIZE_LIMIT"
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Private Function Getname()
|
||||
Dim y, m, d, h, mm, S, r
|
||||
Randomize
|
||||
y = Year(Now)
|
||||
m = right("0" & Month(Now),2)
|
||||
d = right("0" & Day(Now),2)
|
||||
h = right("0" & Hour(Now),2)
|
||||
mm =right("0" & Minute(Now),2)
|
||||
S = right("0" & Second(Now),2)
|
||||
r = CInt(Rnd() * 10000)
|
||||
r = right("0000" & r,4)
|
||||
Getname = y & m & d & h & mm & S & r
|
||||
End Function
|
||||
|
||||
Private Function checkEntryType()
|
||||
Dim ContentType, ctArray, bArray,RequestMethod
|
||||
RequestMethod=trim(LCase(Request.ServerVariables("REQUEST_METHOD")))
|
||||
if RequestMethod="" or RequestMethod<>"post" then
|
||||
checkEntryType = False
|
||||
exit function
|
||||
end if
|
||||
ContentType = LCase(Request.ServerVariables("HTTP_CONTENT_TYPE"))
|
||||
ctArray = Split(ContentType, ";")
|
||||
if ubound(ctarray)>=0 then
|
||||
If Trim(ctArray(0)) = "multipart/form-data" Then
|
||||
checkEntryType = True
|
||||
vboundary = Split(ContentType,"boundary=")(1)
|
||||
Else
|
||||
checkEntryType = False
|
||||
End If
|
||||
else
|
||||
checkEntryType = False
|
||||
end if
|
||||
End Function
|
||||
|
||||
Public Function Forms(ByVal formname)
|
||||
If trim(formname) = "-1" Then
|
||||
Set Forms = Form
|
||||
Else
|
||||
If Form.Exists(LCase(formname)) Then
|
||||
Forms = Form(LCase(formname))
|
||||
Else
|
||||
Forms = ""
|
||||
End If
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function Files(ByVal formname)
|
||||
If trim(formname) = "-1" Then
|
||||
Set Files = Fils
|
||||
Else
|
||||
dim vname
|
||||
vname = LCase(formname) & vMuti & "0"
|
||||
if instr(formname,vMuti)>0 then vname = formname
|
||||
If Fils.Exists(vname) Then
|
||||
Set Files = Fils(vname)
|
||||
Else
|
||||
Set Files = New UploadFileEmpty
|
||||
End If
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function Files_Muti(ByVal formname,byval index)
|
||||
If trim(formname) = "-1" Then
|
||||
Set Files_Muti = Fils
|
||||
Else
|
||||
If Fils.Exists(LCase(formname) & vMuti & index) Then
|
||||
Set Files_Muti = Fils(LCase(formname) & vMuti & index)
|
||||
Else
|
||||
Set Files_Muti = New UploadFileEmpty
|
||||
End If
|
||||
End If
|
||||
End Function
|
||||
|
||||
|
||||
Public Function QuickSave(ByVal formname,Byval SavePath)
|
||||
Dim v, formStart,File,Result,SucceedCount
|
||||
SucceedCount = 0
|
||||
Dim TempFormName
|
||||
TempFormName = formname & vMuti
|
||||
For Each v In Fils
|
||||
If lcase(left(v,len(TempFormName))) = lcase(TempFormName) Then
|
||||
Set File = Fils(v)
|
||||
Result = File.saveToFile(SavePath,0,True)
|
||||
If Result Then SucceedCount = SucceedCount + 1
|
||||
'Set File=Nothing
|
||||
End If
|
||||
Next
|
||||
QuickSave = SucceedCount
|
||||
End Function
|
||||
|
||||
|
||||
Private Function GetNextFormName(byval formname)
|
||||
Dim formStart,currentIndex
|
||||
formStart = left(formname,instr(formname,vMuti)+len(vMuti)-1)
|
||||
currentIndex = mid(formname,instr(formname,vMuti)+len(vMuti))
|
||||
currentIndex =cint(currentIndex)
|
||||
do while Fils.Exists(formname)
|
||||
currentIndex = currentIndex + 1
|
||||
formname = formStart & currentIndex
|
||||
loop
|
||||
GetNextFormName = formname
|
||||
End Function
|
||||
End Class
|
||||
Class UploadFileEmpty
|
||||
Public Property Get IsFile()
|
||||
IsFile = false
|
||||
End Property
|
||||
End Class
|
||||
Class UploadFileEx
|
||||
Private mvarFormName , mvarNewName , mvarLocalName , mvarFileName , mvarUserSetName , mvarContentType ,mException,mvarPosition
|
||||
Private mvarSize , mvarValue , mvarPath , mvarExtend
|
||||
|
||||
Public Property Let Extend(ByVal vData )
|
||||
mvarExtend = vData
|
||||
End Property
|
||||
Public Property Get Extend()
|
||||
Extend = mvarExtend
|
||||
End Property
|
||||
|
||||
Public Property Get IsFile()
|
||||
IsFile = true
|
||||
End Property
|
||||
|
||||
Public Property Let Path(ByVal vData )
|
||||
mvarPath = vData
|
||||
End Property
|
||||
Public Property Get Path()
|
||||
Path = mvarPath
|
||||
End Property
|
||||
|
||||
Public Property Get Exception()
|
||||
Exception = mException
|
||||
End Property
|
||||
|
||||
Public Property Let Value(ByVal vData )
|
||||
mvarValue = vData
|
||||
End Property
|
||||
|
||||
Public Property Get Value()
|
||||
Value = mvarValue
|
||||
End Property
|
||||
|
||||
Public Property Let Size(ByVal vData )
|
||||
mvarSize = vData
|
||||
End Property
|
||||
Public Property Get Size()
|
||||
Size = mvarSize
|
||||
End Property
|
||||
|
||||
Public Property Let Position(ByVal vData )
|
||||
mvarPosition = vData
|
||||
End Property
|
||||
Public Property Get Position()
|
||||
Size = mvarPosition
|
||||
End Property
|
||||
|
||||
Public Property Let ContentType(ByVal vData )
|
||||
mvarContentType = vData
|
||||
End Property
|
||||
Public Property Get ContentType()
|
||||
ContentType = mvarContentType
|
||||
End Property
|
||||
|
||||
Public Property Let UserSetName(ByVal vData )
|
||||
mvarUserSetName = vData
|
||||
End Property
|
||||
Public Property Get UserSetName()
|
||||
UserSetName = mvarUserSetName
|
||||
End Property
|
||||
|
||||
Public Property Let FileName(ByVal vData )
|
||||
mvarFileName = vData
|
||||
End Property
|
||||
Public Property Get FileName()
|
||||
FileName = mvarFileName
|
||||
End Property
|
||||
|
||||
Public Property Let LocalName(ByVal vData )
|
||||
mvarLocalName = vData
|
||||
End Property
|
||||
Public Property Get LocalName()
|
||||
LocalName = mvarLocalName
|
||||
End Property
|
||||
|
||||
Public Property Let NewName(ByVal vData )
|
||||
mvarNewName = vData
|
||||
End Property
|
||||
Public Property Get NewName()
|
||||
NewName = mvarNewName
|
||||
End Property
|
||||
|
||||
Public Property Let FormName(ByVal vData )
|
||||
mvarFormName = vData
|
||||
End Property
|
||||
Public Property Get FormName()
|
||||
FormName = mvarFormName
|
||||
End Property
|
||||
|
||||
Private Sub Class_Initialize()
|
||||
mvarSize =0
|
||||
mvarFormName = ""
|
||||
End Sub
|
||||
|
||||
Public Function SaveToFile(ByVal Path , byval tOption, byval OverWrite)
|
||||
On Error Resume Next
|
||||
Dim IsP
|
||||
IsP = (InStr(Path, ":") = 2)
|
||||
If Not IsP Then Path = Server.MapPath(Path)
|
||||
Path = Replace(Path, "/", "\")
|
||||
If Mid(Path, Len(Path) - 1) <> "\" Then Path = Path + "\"
|
||||
CreateFolder Path
|
||||
mvarPath = Path
|
||||
If tOption = 1 Then
|
||||
Path = Path & mvarLocalName: mvarFileName = mvarLocalName
|
||||
Else
|
||||
If tOption = -1 And mvarUserSetName <> "" Then
|
||||
Path = Path & mvarUserSetName & "." & mvarExtend: mvarFileName = mvarUserSetName & "." & mvarExtend
|
||||
Else
|
||||
Path = Path & mvarNewName: mvarFileName = mvarNewName
|
||||
End If
|
||||
End If
|
||||
If Not OverWrite Then
|
||||
Path = GetFilePath()
|
||||
End If
|
||||
Dim tmpStrm
|
||||
Set tmpStrm =server.CreateObject("ADODB.Stream")
|
||||
tmpStrm.Mode = 3
|
||||
tmpStrm.Type = 1
|
||||
tmpStrm.Open
|
||||
StreamT.Position = mvarPosition
|
||||
StreamT.copyto tmpStrm,mvarSize
|
||||
tmpStrm.SaveToFile Path, 2
|
||||
tmpStrm.Close
|
||||
Set tmpStrm = Nothing
|
||||
'Set SaveToFile = new ErrorMessage_
|
||||
If Not Err Then
|
||||
SaveToFile = true
|
||||
Else
|
||||
SaveToFile = false
|
||||
mException=Err.Description
|
||||
End If
|
||||
End Function
|
||||
Public Function GetBytes()
|
||||
StreamT.Position = mvarPosition
|
||||
GetBytes = StreamT.read(mvarSize)
|
||||
End Function
|
||||
Private Function CreateFolder(ByVal folderPath )
|
||||
Dim oFSO
|
||||
Set oFSO = server.CreateObject("Scripting.FileSystemObject")
|
||||
Dim sParent
|
||||
sParent = oFSO.GetParentFolderName(folderPath)
|
||||
If sParent = "" Then Exit Function
|
||||
If Not oFSO.FolderExists(sParent) Then CreateFolder (sParent)
|
||||
If Not oFSO.FolderExists(folderPath) Then oFSO.CreateFolder (folderPath)
|
||||
Set oFSO = Nothing
|
||||
End Function
|
||||
|
||||
Private Function GetFilePath()
|
||||
Dim oFSO, Fname , FNameL , i
|
||||
i = 0
|
||||
Set oFSO = server.CreateObject("Scripting.FileSystemObject")
|
||||
Fname = mvarPath & mvarFileName
|
||||
FNameL = Mid(mvarFileName, 1, InStr(mvarFileName, ".") - 1)
|
||||
Do While oFSO.FileExists(Fname)
|
||||
Fname = mvarPath & FNameL & "(" & i & ")." & mvarExtend
|
||||
mvarFileName = FNameL & "(" & i & ")." & mvarExtend
|
||||
i = i + 1
|
||||
Loop
|
||||
Set oFSO = Nothing
|
||||
GetFilePath = Fname
|
||||
End Function
|
||||
End Class
|
||||
%>
|
||||
Reference in New Issue
Block a user