io.asp
上传用户:dbstep
上传日期:2022-08-06
资源大小:2803k
文件大小:7k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

ASP/ASPX

  1. <%
  2.  ' FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3.  ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
  4.  '
  5.  ' == BEGIN LICENSE ==
  6.  '
  7.  ' Licensed under the terms of any of the following licenses at your
  8.  ' choice:
  9.  '
  10.  '  - GNU General Public License Version 2 or later (the "GPL")
  11.  '    http://www.gnu.org/licenses/gpl.html
  12.  '
  13.  '  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14.  '    http://www.gnu.org/licenses/lgpl.html
  15.  '
  16.  '  - Mozilla Public License Version 1.1 or later (the "MPL")
  17.  '    http://www.mozilla.org/MPL/MPL-1.1.html
  18.  '
  19.  ' == END LICENSE ==
  20.  '
  21.  ' This file include IO specific functions used by the ASP Connector.
  22. %>
  23. <%
  24. function CombinePaths( sBasePath, sFolder)
  25. sFolder = replace(sFolder, "", "/")
  26. CombinePaths =  RemoveFromEnd( sBasePath, "/" ) & "/" & RemoveFromStart( sFolder, "/" )
  27. end function
  28. function CombineLocalPaths( sBasePath, sFolder)
  29. sFolder = replace(sFolder, "/", "")
  30. ' The RemoveFrom* functions use RegExp, so we must escape the 
  31. CombineLocalPaths =  RemoveFromEnd( sBasePath, "\" ) & "" & RemoveFromStart( sFolder, "\" )
  32. end function
  33. Function GetResourceTypePath( resourceType, sCommand )
  34. if ( sCommand = "QuickUpload") then
  35. GetResourceTypePath = ConfigQuickUploadPath.Item( resourceType )
  36. else
  37. GetResourceTypePath = ConfigFileTypesPath.Item( resourceType )
  38. end if
  39. end Function
  40. Function GetResourceTypeDirectory( resourceType, sCommand )
  41. if ( sCommand = "QuickUpload") then
  42. if ( ConfigQuickUploadAbsolutePath.Item( resourceType ) <> "" ) then
  43. GetResourceTypeDirectory = ConfigQuickUploadAbsolutePath.Item( resourceType )
  44. else
  45. ' Map the "UserFiles" path to a local directory.
  46. GetResourceTypeDirectory = Server.MapPath( ConfigQuickUploadPath.Item( resourceType ) )
  47. end if
  48. else
  49. if ( ConfigFileTypesAbsolutePath.Item( resourceType ) <> "" ) then
  50. GetResourceTypeDirectory = ConfigFileTypesAbsolutePath.Item( resourceType )
  51. else
  52. ' Map the "UserFiles" path to a local directory.
  53. GetResourceTypeDirectory = Server.MapPath( ConfigFileTypesPath.Item( resourceType ) )
  54. end if
  55. end if
  56. end Function
  57. Function GetUrlFromPath( resourceType, folderPath, sCommand )
  58. GetUrlFromPath = CombinePaths( GetResourceTypePath( resourceType, sCommand ), folderPath )
  59. End Function
  60. Function RemoveExtension( fileName )
  61. RemoveExtension = Left( fileName, InStrRev( fileName, "." ) - 1 )
  62. End Function
  63. Function ServerMapFolder( resourceType, folderPath, sCommand )
  64. Dim sResourceTypePath
  65. ' Get the resource type directory.
  66. sResourceTypePath = GetResourceTypeDirectory( resourceType, sCommand )
  67. ' Ensure that the directory exists.
  68. CreateServerFolder sResourceTypePath
  69. ' Return the resource type directory combined with the required path.
  70. ServerMapFolder = CombineLocalPaths( sResourceTypePath, folderPath )
  71. End Function
  72. Sub CreateServerFolder( folderPath )
  73. Dim oFSO
  74. Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
  75. Dim sParent
  76. sParent = oFSO.GetParentFolderName( folderPath )
  77. ' If folderPath is a network path (\serverfolder) then sParent is an empty string.
  78. ' Get out.
  79. if (sParent = "") then exit sub
  80. ' Check if the parent exists, or create it.
  81. If ( NOT oFSO.FolderExists( sParent ) ) Then CreateServerFolder( sParent )
  82. If ( oFSO.FolderExists( folderPath ) = False ) Then
  83. On Error resume next
  84. oFSO.CreateFolder( folderPath )
  85. if err.number<>0 then
  86. dim sErrorNumber
  87. Dim iErrNumber, sErrDescription
  88. iErrNumber = err.number
  89. sErrDescription = err.Description
  90. On Error Goto 0
  91. Select Case iErrNumber
  92. Case 52
  93. sErrorNumber = "102" ' Invalid Folder Name.
  94. Case 70
  95. sErrorNumber = "103" ' Security Error.
  96. Case 76
  97. sErrorNumber = "102" ' Path too long.
  98. Case Else
  99. sErrorNumber = "110"
  100. End Select
  101. SendError sErrorNumber, "CreateServerFolder(" & folderPath & ") : " & sErrDescription
  102. end if
  103. End If
  104. Set oFSO = Nothing
  105. End Sub
  106. Function IsAllowedExt( extension, resourceType )
  107. Dim oRE
  108. Set oRE = New RegExp
  109. oRE.IgnoreCase = True
  110. oRE.Global = True
  111. Dim sAllowed, sDenied
  112. sAllowed = ConfigAllowedExtensions.Item( resourceType )
  113. sDenied = ConfigDeniedExtensions.Item( resourceType )
  114. IsAllowedExt = True
  115. If sDenied <> "" Then
  116. oRE.Pattern = sDenied
  117. IsAllowedExt = Not oRE.Test( extension )
  118. End If
  119. If IsAllowedExt And sAllowed <> "" Then
  120. oRE.Pattern = sAllowed
  121. IsAllowedExt = oRE.Test( extension )
  122. End If
  123. Set oRE = Nothing
  124. End Function
  125. Function IsAllowedType( resourceType )
  126. Dim oRE
  127. Set oRE = New RegExp
  128. oRE.IgnoreCase = False
  129. oRE.Global = True
  130. oRE.Pattern = "^(" & ConfigAllowedTypes & ")$"
  131. IsAllowedType = oRE.Test( resourceType )
  132. Set oRE = Nothing
  133. End Function
  134. Function IsAllowedCommand( sCommand )
  135. Dim oRE
  136. Set oRE = New RegExp
  137. oRE.IgnoreCase = True
  138. oRE.Global = True
  139. oRE.Pattern = "^(" & ConfigAllowedCommands & ")$"
  140. IsAllowedCommand = oRE.Test( sCommand )
  141. Set oRE = Nothing
  142. End Function
  143. function GetCurrentFolder()
  144. dim sCurrentFolder
  145. sCurrentFolder = Request.QueryString("CurrentFolder")
  146. If ( sCurrentFolder = "" ) Then sCurrentFolder = "/"
  147. ' Check the current folder syntax (must begin and start with a slash).
  148. If ( Right( sCurrentFolder, 1 ) <> "/" ) Then sCurrentFolder = sCurrentFolder & "/"
  149. If ( Left( sCurrentFolder, 1 ) <> "/" ) Then sCurrentFolder = "/" & sCurrentFolder
  150. ' Check for invalid folder paths (..)
  151. If ( InStr( 1, sCurrentFolder, ".." ) <> 0 OR InStr( 1, sCurrentFolder, "" ) <> 0) Then
  152. SendError 102, ""
  153. End If
  154. GetCurrentFolder = sCurrentFolder
  155. end function
  156. ' Do a cleanup of the folder name to avoid possible problems
  157. function SanitizeFolderName( sNewFolderName )
  158. Dim oRegex
  159. Set oRegex = New RegExp
  160. oRegex.Global = True
  161. ' remove .  / | : ? *  " < > and control characters
  162. oRegex.Pattern = "(.|\|/|||:|?|*|""|<|>|[u0000-u001F]|u007F)"
  163. SanitizeFolderName = oRegex.Replace( sNewFolderName, "_" )
  164. Set oRegex = Nothing
  165. end function
  166. ' Do a cleanup of the file name to avoid possible problems
  167. function SanitizeFileName( sNewFileName )
  168. Dim oRegex
  169. Set oRegex = New RegExp
  170. oRegex.Global = True
  171. if ( ConfigForceSingleExtension = True ) then
  172. oRegex.Pattern = ".(?![^.]*$)"
  173. sNewFileName = oRegex.Replace( sNewFileName, "_" )
  174. end if
  175. ' remove  / | : ? *  " < > and control characters
  176. oRegex.Pattern = "(\|/|||:|?|*|""|<|>|[u0000-u001F]|u007F)"
  177. SanitizeFileName = oRegex.Replace( sNewFileName, "_" )
  178. Set oRegex = Nothing
  179. end function
  180. ' This is the function that sends the results of the uploading process.
  181. Sub SendUploadResults( errorNumber, fileUrl, fileName, customMsg )
  182. Response.Clear
  183. Response.Write "<script type=""text/javascript"">"
  184. ' Minified version of the document.domain automatic fix script (#1919).
  185. ' The original script can be found at _dev/domain_fix_template.js
  186. Response.Write "(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();"
  187. Response.Write "window.parent.OnUploadCompleted(" & errorNumber & ",""" & Replace( fileUrl, """", """" ) & """,""" & Replace( fileName, """", """" ) & """,""" & Replace( customMsg , """", """" ) & """) ;"
  188. Response.Write "</script>"
  189. Response.End
  190. End Sub
  191. %>