first commit
This commit is contained in:
230
stud/FCKeditor/editor/filemanager/upload/asp/class_upload.asp
Normal file
230
stud/FCKeditor/editor/filemanager/upload/asp/class_upload.asp
Normal file
@ -0,0 +1,230 @@
|
||||
<!--
|
||||
* FCKeditor - The text editor for internet
|
||||
* Copyright (C) 2003-2006 Frederico Caldeira Knabben
|
||||
*
|
||||
* Licensed under the terms of the GNU Lesser General Public License:
|
||||
* http://www.opensource.org/licenses/lgpl-license.php
|
||||
*
|
||||
* For further information visit:
|
||||
* http://www.fckeditor.net/
|
||||
*
|
||||
* "Support Open Source software. What about a donation today?"
|
||||
*
|
||||
* File Name: class_upload.asp
|
||||
* These are the classes used to handle ASP upload without using third
|
||||
* part components (OCX/DLL).
|
||||
*
|
||||
* File Authors:
|
||||
* NetRube (netrube@126.com)
|
||||
-->
|
||||
<%
|
||||
'**********************************************
|
||||
' File: NetRube_Upload.asp
|
||||
' Version: NetRube Upload Class Version 2.1 Build 20050228
|
||||
' Author: NetRube
|
||||
' Email: NetRube@126.com
|
||||
' Date: 02/28/2005
|
||||
' Comments: The code for the Upload.
|
||||
' This can free usage, but please
|
||||
' not to delete this copyright information.
|
||||
' If you have a modification version,
|
||||
' Please send out a duplicate to me.
|
||||
'**********************************************
|
||||
' 文件名: NetRube_Upload.asp
|
||||
' 版本: NetRube Upload Class Version 2.1 Build 20050228
|
||||
' 作者: NetRube(网络乡巴佬)
|
||||
' 电子邮件: NetRube@126.com
|
||||
' 日期: 2005年02月28日
|
||||
' 声明: 文件上传类
|
||||
' 本上传类可以自由使用,但请保留此版权声明信息
|
||||
' 如果您对本上传类进行修改增强,
|
||||
' 请发送一份给俺。
|
||||
'**********************************************
|
||||
|
||||
Class NetRube_Upload
|
||||
|
||||
Public File, Form
|
||||
Private oSourceData
|
||||
Private nMaxSize, nErr, sAllowed, sDenied
|
||||
|
||||
Private Sub Class_Initialize
|
||||
nErr = 0
|
||||
nMaxSize = 1048576
|
||||
|
||||
Set File = Server.CreateObject("Scripting.Dictionary")
|
||||
File.CompareMode = 1
|
||||
Set Form = Server.CreateObject("Scripting.Dictionary")
|
||||
Form.CompareMode = 1
|
||||
|
||||
Set oSourceData = Server.CreateObject("ADODB.Stream")
|
||||
oSourceData.Type = 1
|
||||
oSourceData.Mode = 3
|
||||
oSourceData.Open
|
||||
End Sub
|
||||
|
||||
Private Sub Class_Terminate
|
||||
Form.RemoveAll
|
||||
Set Form = Nothing
|
||||
File.RemoveAll
|
||||
Set File = Nothing
|
||||
|
||||
oSourceData.Close
|
||||
Set oSourceData = Nothing
|
||||
End Sub
|
||||
|
||||
Public Property Get Version
|
||||
Version = "NetRube Upload Class Version 1.0 Build 20041218"
|
||||
End Property
|
||||
|
||||
Public Property Get ErrNum
|
||||
ErrNum = nErr
|
||||
End Property
|
||||
|
||||
Public Property Let MaxSize(nSize)
|
||||
nMaxSize = nSize
|
||||
End Property
|
||||
|
||||
Public Property Let Allowed(sExt)
|
||||
sAllowed = sExt
|
||||
End Property
|
||||
|
||||
Public Property Let Denied(sExt)
|
||||
sDenied = sExt
|
||||
End Property
|
||||
|
||||
Public Sub GetData
|
||||
Dim aCType
|
||||
aCType = Split(Request.ServerVariables("HTTP_CONTENT_TYPE"), ";")
|
||||
If aCType(0) <> "multipart/form-data" Then
|
||||
nErr = 1
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim nTotalSize
|
||||
nTotalSize = Request.TotalBytes
|
||||
If nTotalSize < 1 Then
|
||||
nErr = 2
|
||||
Exit Sub
|
||||
End If
|
||||
If nMaxSize > 0 And nTotalSize > nMaxSize Then
|
||||
nErr = 3
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
oSourceData.Write Request.BinaryRead(nTotalSize)
|
||||
oSourceData.Position = 0
|
||||
|
||||
Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary
|
||||
|
||||
oTotalData = oSourceData.Read
|
||||
bCrLf = ChrB(13) & ChrB(10)
|
||||
sBoundary = MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1)
|
||||
nBoundLen = LenB(sBoundary) + 2
|
||||
nFormStart = nBoundLen
|
||||
|
||||
Set oFormStream = Server.CreateObject("ADODB.Stream")
|
||||
|
||||
Do While (nFormStart + 2) < nTotalSize
|
||||
nFormEnd = InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3
|
||||
|
||||
With oFormStream
|
||||
.Type = 1
|
||||
.Mode = 3
|
||||
.Open
|
||||
oSourceData.Position = nFormStart
|
||||
oSourceData.CopyTo oFormStream, nFormEnd - nFormStart
|
||||
.Position = 0
|
||||
.Type = 2
|
||||
.CharSet = "UTF-8"
|
||||
sFormHeader = .ReadText
|
||||
.Close
|
||||
End With
|
||||
|
||||
nFormStart = InStrB(nFormEnd, oTotalData, sBoundary) - 1
|
||||
nPosStart = InStr(22, sFormHeader, " name=", 1) + 7
|
||||
nPosEnd = InStr(nPosStart, sFormHeader, """")
|
||||
sFormName = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
|
||||
|
||||
If InStr(45, sFormHeader, " filename=", 1) > 0 Then
|
||||
Set File(sFormName) = New NetRube_FileInfo
|
||||
File(sFormName).FormName = sFormName
|
||||
File(sFormName).Start = nFormEnd
|
||||
File(sFormName).Size = nFormStart - nFormEnd - 2
|
||||
nPosStart = InStr(nPosEnd, sFormHeader, " filename=", 1) + 11
|
||||
nPosEnd = InStr(nPosStart, sFormHeader, """")
|
||||
File(sFormName).ClientPath = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
|
||||
File(sFormName).Name = Mid(File(sFormName).ClientPath, InStrRev(File(sFormName).ClientPath, "\") + 1)
|
||||
File(sFormName).Ext = LCase(Mid(File(sFormName).Name, InStrRev(File(sFormName).Name, ".") + 1))
|
||||
nPosStart = InStr(nPosEnd, sFormHeader, "Content-Type: ", 1) + 14
|
||||
nPosEnd = InStr(nPosStart, sFormHeader, vbCr)
|
||||
File(sFormName).MIME = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
|
||||
Else
|
||||
With oFormStream
|
||||
.Type = 1
|
||||
.Mode = 3
|
||||
.Open
|
||||
oSourceData.Position = nPosEnd
|
||||
oSourceData.CopyTo oFormStream, nFormStart - nFormEnd - 2
|
||||
.Position = 0
|
||||
.Type = 2
|
||||
.CharSet = "UTF-8"
|
||||
Form(sFormName) = .ReadText
|
||||
.Close
|
||||
End With
|
||||
End If
|
||||
|
||||
nFormStart = nFormStart + nBoundLen
|
||||
Loop
|
||||
|
||||
oTotalData = ""
|
||||
Set oFormStream = Nothing
|
||||
End Sub
|
||||
|
||||
Public Sub SaveAs(sItem, sFileName)
|
||||
If File(sItem).Size < 1 Then
|
||||
nErr = 2
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If Not IsAllowed(File(sItem).Ext) Then
|
||||
nErr = 4
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim oFileStream
|
||||
Set oFileStream = Server.CreateObject("ADODB.Stream")
|
||||
With oFileStream
|
||||
.Type = 1
|
||||
.Mode = 3
|
||||
.Open
|
||||
oSourceData.Position = File(sItem).Start
|
||||
oSourceData.CopyTo oFileStream, File(sItem).Size
|
||||
.Position = 0
|
||||
.SaveToFile sFileName, 2
|
||||
.Close
|
||||
End With
|
||||
Set oFileStream = Nothing
|
||||
End Sub
|
||||
|
||||
Private Function IsAllowed(sExt)
|
||||
Dim oRE
|
||||
Set oRE = New RegExp
|
||||
oRE.IgnoreCase = True
|
||||
oRE.Global = True
|
||||
|
||||
If sDenied = "" Then
|
||||
oRE.Pattern = sAllowed
|
||||
IsAllowed = (sAllowed = "") Or oRE.Test(sExt)
|
||||
Else
|
||||
oRE.Pattern = sDenied
|
||||
IsAllowed = Not oRE.Test(sExt)
|
||||
End If
|
||||
|
||||
Set oRE = Nothing
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Class NetRube_FileInfo
|
||||
Dim FormName, ClientPath, Path, Name, Ext, Content, Size, MIME, Start
|
||||
End Class
|
||||
%>
|
48
stud/FCKeditor/editor/filemanager/upload/asp/config.asp
Normal file
48
stud/FCKeditor/editor/filemanager/upload/asp/config.asp
Normal file
@ -0,0 +1,48 @@
|
||||
<!--
|
||||
* FCKeditor - The text editor for internet
|
||||
* Copyright (C) 2003-2006 Frederico Caldeira Knabben
|
||||
*
|
||||
* Licensed under the terms of the GNU Lesser General Public License:
|
||||
* http://www.opensource.org/licenses/lgpl-license.php
|
||||
*
|
||||
* For further information visit:
|
||||
* http://www.fckeditor.net/
|
||||
*
|
||||
* "Support Open Source software. What about a donation today?"
|
||||
*
|
||||
* File Name: config.asp
|
||||
* Configuration file for the File Manager Connector for ASP.
|
||||
*
|
||||
* File Authors:
|
||||
* Frederico Caldeira Knabben (fredck@fckeditor.net)
|
||||
-->
|
||||
<%
|
||||
|
||||
' SECURITY: You must explicitelly enable this "uploader" (set it to "True").
|
||||
Dim ConfigIsEnabled
|
||||
ConfigIsEnabled = False
|
||||
|
||||
' Set if the file type must be considere in the target path.
|
||||
' Ex: /UserFiles/Image/ or /UserFiles/File/
|
||||
Dim ConfigUseFileType
|
||||
ConfigUseFileType = False
|
||||
|
||||
' Path to user files relative to the document root.
|
||||
Dim ConfigUserFilesPath
|
||||
ConfigUserFilesPath = "/UserFiles/"
|
||||
|
||||
' Allowed and Denied extensions configurations.
|
||||
Dim ConfigAllowedExtensions, ConfigDeniedExtensions
|
||||
Set ConfigAllowedExtensions = CreateObject( "Scripting.Dictionary" )
|
||||
Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" )
|
||||
|
||||
ConfigAllowedExtensions.Add "File", ""
|
||||
ConfigDeniedExtensions.Add "File", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi"
|
||||
|
||||
ConfigAllowedExtensions.Add "Image", "jpg|gif|jpeg|png|bmp"
|
||||
ConfigDeniedExtensions.Add "Image", ""
|
||||
|
||||
ConfigAllowedExtensions.Add "Flash", "swf|fla"
|
||||
ConfigDeniedExtensions.Add "Flash", ""
|
||||
|
||||
%>
|
25
stud/FCKeditor/editor/filemanager/upload/asp/io.asp
Normal file
25
stud/FCKeditor/editor/filemanager/upload/asp/io.asp
Normal file
@ -0,0 +1,25 @@
|
||||
<!--
|
||||
* FCKeditor - The text editor for internet
|
||||
* Copyright (C) 2003-2006 Frederico Caldeira Knabben
|
||||
*
|
||||
* Licensed under the terms of the GNU Lesser General Public License:
|
||||
* http://www.opensource.org/licenses/lgpl-license.php
|
||||
*
|
||||
* For further information visit:
|
||||
* http://www.fckeditor.net/
|
||||
*
|
||||
* "Support Open Source software. What about a donation today?"
|
||||
*
|
||||
* File Name: io.asp
|
||||
* This file include IO specific functions used by the ASP Uploader.
|
||||
*
|
||||
* File Authors:
|
||||
* Frederico Caldeira Knabben (fredck@fckeditor.net)
|
||||
-->
|
||||
<%
|
||||
|
||||
Function RemoveExtension( fileName )
|
||||
RemoveExtension = Left( fileName, InStrRev( fileName, "." ) - 1 )
|
||||
End Function
|
||||
|
||||
%>
|
117
stud/FCKeditor/editor/filemanager/upload/asp/upload.asp
Normal file
117
stud/FCKeditor/editor/filemanager/upload/asp/upload.asp
Normal file
@ -0,0 +1,117 @@
|
||||
<%@ CodePage=65001 Language="VBScript"%>
|
||||
<%
|
||||
Option Explicit
|
||||
Response.Buffer = True
|
||||
%>
|
||||
<!--
|
||||
* FCKeditor - The text editor for internet
|
||||
* Copyright (C) 2003-2006 Frederico Caldeira Knabben
|
||||
*
|
||||
* Licensed under the terms of the GNU Lesser General Public License:
|
||||
* http://www.opensource.org/licenses/lgpl-license.php
|
||||
*
|
||||
* For further information visit:
|
||||
* http://www.fckeditor.net/
|
||||
*
|
||||
* "Support Open Source software. What about a donation today?"
|
||||
*
|
||||
* File Name: upload.asp
|
||||
* This is the "File Uploader" for ASP.
|
||||
*
|
||||
* File Authors:
|
||||
* Frederico Caldeira Knabben (fredck@fckeditor.net)
|
||||
-->
|
||||
<!--#include file="config.asp"-->
|
||||
<!--#include file="io.asp"-->
|
||||
<!--#include file="class_upload.asp"-->
|
||||
<%
|
||||
|
||||
' This is the function that sends the results of the uploading process.
|
||||
Function SendResults( errorNumber, fileUrl, fileName, customMsg )
|
||||
Response.Write "<script type=""text/javascript"">"
|
||||
Response.Write "window.parent.OnUploadCompleted(" & errorNumber & ",""" & Replace( fileUrl, """", "\""" ) & """,""" & Replace( fileName, """", "\""" ) & """,""" & Replace( customMsg , """", "\""" ) & """) ;"
|
||||
Response.Write "</script>"
|
||||
Response.End
|
||||
End Function
|
||||
|
||||
%>
|
||||
<%
|
||||
|
||||
' Check if this uploader has been enabled.
|
||||
If ( ConfigIsEnabled = False ) Then
|
||||
SendResults "1", "", "", "This file uploader is disabled. Please check the ""editor/filemanager/upload/asp/config.asp"" file"
|
||||
End If
|
||||
|
||||
' The the file type (from the QueryString, by default 'File').
|
||||
Dim resourceType
|
||||
If ( Request.QueryString("Type") <> "" ) Then
|
||||
resourceType = Request.QueryString("Type")
|
||||
Else
|
||||
resourceType = "File"
|
||||
End If
|
||||
|
||||
' Create the Uploader object.
|
||||
Dim oUploader
|
||||
Set oUploader = New NetRube_Upload
|
||||
oUploader.MaxSize = 0
|
||||
oUploader.Allowed = ConfigAllowedExtensions.Item( resourceType )
|
||||
oUploader.Denied = ConfigDeniedExtensions.Item( resourceType )
|
||||
oUploader.GetData
|
||||
|
||||
If oUploader.ErrNum > 1 Then
|
||||
SendResults "202", "", "", ""
|
||||
Else
|
||||
Dim sFileName, sFileUrl, sErrorNumber, sOriginalFileName, sExtension
|
||||
sFileName = ""
|
||||
sFileUrl = ""
|
||||
sErrorNumber = "0"
|
||||
|
||||
' Map the virtual path to the local server path.
|
||||
Dim sServerDir
|
||||
sServerDir = Server.MapPath( ConfigUserFilesPath )
|
||||
If ( Right( sServerDir, 1 ) <> "\" ) Then
|
||||
sServerDir = sServerDir & "\"
|
||||
End If
|
||||
|
||||
If ( ConfigUseFileType = True ) Then
|
||||
sServerDir = sServerDir & resourceType & "\"
|
||||
End If
|
||||
|
||||
Dim oFSO
|
||||
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
|
||||
|
||||
' Get the uploaded file name.
|
||||
sFileName = oUploader.File( "NewFile" ).Name
|
||||
sExtension = oUploader.File( "NewFile" ).Ext
|
||||
sOriginalFileName = sFileName
|
||||
|
||||
Dim iCounter
|
||||
iCounter = 0
|
||||
|
||||
Do While ( True )
|
||||
Dim sFilePath
|
||||
sFilePath = sServerDir & sFileName
|
||||
|
||||
If ( oFSO.FileExists( sFilePath ) ) Then
|
||||
iCounter = iCounter + 1
|
||||
sFileName = RemoveExtension( sOriginalFileName ) & "(" & iCounter & ")." & sExtension
|
||||
sErrorNumber = "201"
|
||||
Else
|
||||
oUploader.SaveAs "NewFile", sFilePath
|
||||
If oUploader.ErrNum > 0 Then SendResults "202", "", "", ""
|
||||
Exit Do
|
||||
End If
|
||||
Loop
|
||||
|
||||
If ( ConfigUseFileType = True ) Then
|
||||
sFileUrl = ConfigUserFilesPath & resourceType & "/" & sFileName
|
||||
Else
|
||||
sFileUrl = ConfigUserFilesPath & sFileName
|
||||
End If
|
||||
|
||||
SendResults sErrorNumber, sFileUrl, sFileName, ""
|
||||
|
||||
End If
|
||||
|
||||
Set oUploader = Nothing
|
||||
%>
|
Reference in New Issue
Block a user