Tengo que estudiar FCKEditor recientemente, y es la versión ASP. Cambie el nombre del archivo después de cargarlo es muy deprimente. El siguiente registra mi proceso de modificación, y algunas funciones provienen de la red. Posicionado para: Editor/Filemanager/Connectores/ASP/IO.asp
El objetivo principal es modificar la función: SanitizeFileName y agregar un método para obtener la extensión y el cambio de nombre del archivo.
La copia del código es la siguiente:
'Haga una limpieza del nombre del archivo para evitar posibles problemas
función SanitizeFileName (snewFileName)
Dim Oregex
Dim oext
Establecer OREGEX = nuevo Regexp
Oregex.Global = True
if (configForcsingleExtension = true) entonces entonces
Oregex.pattern = /.(?!cul^.font>$)
slewfileName = Oregex.replace (snewfileName, _)
'Obtenga la extensión del archivo
slewFileName = MakeFileName (ahora ()). & getExtend (snewFileName)
final si
'Eliminar / |
Oregex.Pattern = (// | // |/|: |/?/*||/<| //////> | [/u0000-/u001f] |/u007f)
SanitizeFileName = Oregex.replace (snewfileName, _)
Establecer Oregex = nada
función final
Función getExtend (nombre de archivo)
Dim TMP
Si el nombre de archivo <> entonces
tmp = mid (nombre de archivo, instrrev (nombre de archivo ,.)+1, len (nombre de archivo) -instrrev (nombre de archivo ,.)))
tmp = lcase (TMP)
Si Instr (1, TMP, ASP)> 0 o Instr (1, TMP, PHP)> 0 o Instr (1, TMP, PHP3)> 0 o Instr (1, TMP, ASPX)> 0 entonces
getExtend = txt
demás
getExtend = tmp
final si
demás
getExtend =
final si
Función final
función MakeFileName (FNAME)
fname = fname 'First Fname es una variable, y este último fname es una referencia de parámetro de función
fname = reemplazar (fname,-,)
fname = reemplazar (fname ,,)
fname = reemplazar (fname, :,)
fname = reemplazar (fname, pm,)
fname = reemplazar (fname, am,)
fname = reemplazar (fname, mañana)
fname = reemplazar (fname, tarde,)
MakefileName = fname
función final
Si es demasiado vago para cambiar, simplemente copie el siguiente código:
La copia del código es la siguiente:
<%
'Fckeditor - El editor de texto para Internet - http://www.fckeditor.net
'Copyright (c) 2003-2009 Frederico Caldeira Knabben
'
'== BEGIN LICENCIA ==
'
'Licenciado bajo los términos de cualquiera de las siguientes licencias en su
' elección:
'
' - GNU General Public License versión 2 o posterior (la GPL)
'http://www.gnu.org/licenses/gpl.html
'
' - GNU Menor General Public License versión 2.1 o posterior (el LGPL)
'http://www.gnu.org/licenses/lgpl.html
'
' - Mozilla Public License versión 1.1 o posterior (la MPL)
'http://www.mozilla.org/mpl/mpl-1.1.html
'
'== Licencia final ==
'
'Este archivo incluye funciones específicas de IO utilizadas por el conector ASP.
%>
<%
Función CombinePaths (Sbasepath, Sfolder)
sfolder = reemplazar (sfolder, /, /)
Combinepaths = removeFromend (SbasePath, /) & / & RemoughFromStart (Sfolder, /)
función final
función combinelocalpaths (sbasePath, sfolder)
sfolder = reemplazar (sfolder, /, /)
'Las funciones de removefrom* usan regexp, por lo que debemos escapar de /
Combinelocalpaths = removeFromend (sbasePath, //) & / & eliminaFromStart (sfolder, //)
función final
Función getResourCetypePath (ResourceType, Scommand)
if (scommand = QuickUpload) entonces
GetResourCetypePath = configquickuploadpath.item (resourceType)
demás
GetResourCetypePath = configFileTyPespath.Item (ResourceType)
final si
función final
Función getResourCetyPedirectory (ResourceType, Scommand)
if (scommand = QuickUpload) entonces
if (configquickuploadabsolutepath.item (resourceType) <>) entonces
GetResourCetyPedirectory = configQuickuploadabsolutePath.item (ResourceType)
demás
'Mapee la ruta de los archivos de usuario a un directorio local.
GetResourCetypeDirectory = server.mappath (configquickuploadpath.item (resourteCetype))
final si
demás
if (configFileTyPesabsolutePath.item (resourceType) <>) entonces
GetResourCetyPedirectory = configFileTyPesabSolutePath.Item (ResourceType)
demás
'Mapee la ruta de los archivos de usuario a un directorio local.
GetResourCetypeDirectory = server.mappath (configFileTyPespath.Item (ResourceType))
final si
final si
función final
Función getUrlfrompath (ResourceType, FolderPath, Scommand)
GetUrlFrompath = combinepaths (getResourCetypePath (ResourceType, Scommand), FolderPath)
Función final
Función RemoutExtension (nombre de archivo)
RemoTextension = Left (FileName, Instrrever (FileName ,.) - 1)
Función final
Function ServerMapFolder (ResourceType, FolderPath, Scommand)
Dim sresourcetypepath
'Obtenga el directorio de tipo de recurso.
sresourcetypePath = getResourCetyPedirectory (ResourceType, Scommand)
'Asegúrese de que exista el directorio.
CreateServerfolder sresesourcetypePath
'Devuelve el directorio de tipo de recurso combinado con la ruta requerida.
ServerMapFolder = combineLocalPaths (SresesourCetypePath, FolderPath)
Función final
Sub CreateServerFolder (FolderPath)
Dim OfSo
Establecer OFSO = Server.CreateObject (scripting.filesystemObject)
Dim Sparent
SPARENT = ofSo.getParentFolderName (FolderPath)
'Si la carpeta es una ruta de red (// servidor/carpeta/), entonces Sparent es una cadena vacía.
' Salir.
if (sparent =) Entonces salga sub
'Compruebe si el padre existe o crea.
If (no ofSo.foldereRexists (SPARENT)) entonces CreateServerFolder (SPARENT)
If (ofSo.foldereRexists (folderPath) = falso) entonces
En el currículum de error siguiente
OfSo.CreateFolder (carpeta)
Si err.number <> 0 entonces
Dim Serrornumber
Dim ierrnumber, serrdescription
ierrnumber = err.number
serrDescription = err.description
En error goto 0
Seleccionar el caso ierrnumber
Caso 52
Serrornumber = 102 'Nombre de la carpeta no válido.
Caso 70
Serrornumber = 103 'Error de seguridad.
Caso 76
Serrornumber = 102 'Camino demasiado tiempo.
Caso
Serrornumber = 110
Final seleccionar
SendError Serrornumber, CreateServerFolder (& FolderPath &): & Serrdescription
final si
Final si
Establecer OFSO = nada
Final
Función isLlowedExt (Extension, ResourCetype)
Mineral dim
Establecer ORE = new Regexp
Ore.ignorecase = True
Ore.Global = True
Dim SaLlowed, sdenied
sallowed = configAllawedExtensions.Item (ResourceType)
sDenied = configDeniedExtensions.Item (ResourceType)
IsLlowedExt = True
Si sdenied <> entonces
Ore.Pattern = SDENED
IsLlowedExt = no ore.test (extensión)
Final si
Si isLlowedExt y SaLlowed <> entonces
Ore.Pattern = Sallowed
IsAllowedExt = ore.test (extensión)
Final si
Establecer Ore = nada
Función final
Función isLlowedType (ResourceType)
Mineral dim
Establecer ORE = new Regexp
Ore.ignorecase = falso
Ore.Global = True
Ore.pattern = ^(& configAllowedTypes &) $
IsLlowedType = ore.test (ResourceType)
Establecer Ore = nada
Función final
Función isLlowedCommand (Scommand)
Mineral dim
Establecer ORE = new Regexp
Ore.ignorecase = True
Ore.Global = True
Ore.pattern = ^(& configAllowedCommands &) $
IsLlowedCommand = ore.test (Scommand)
Establecer Ore = nada
Función final
función getCurrentFolder ()
Dimpolder Dim Scurrent
Dim Oregex
ScurrentFolder = request.QueryString (currutina de corriente)
If (scurrentFolder =) entonces scurrentFolder = /
'Verifique la sintaxis de la carpeta actual (debe comenzar y comenzar con una barra).
If (right (ScurrentFolder, 1) <> /) entonces ScurrentFolder = ScurrentFolder & / /
If (izquierda (ScurrentFolder, 1) <> /) entonces ScurrentFolder = / & ScurrentFolder
'Verifique las rutas de carpetas no válidas (..)
If (instr (1, ScurrentFolder, ..) <> 0 o Instr (1, ScurrentFolder, /) <> 0) Entonces
SendError 102,
Final si
Establecer OREGEX = nuevo Regexp
Oregex.Global = True
Oregex.pattern = (//.)|(//)|(bar//:/*/?//</>/|font>|acione/u0000-/u001ffont>/u007f)
if (Oregex.test (ScurrentFolder)) entonces
SendError 102,
Final si
GetCurrentFolder = ScurrentFolder
función final
'Haga una limpieza del nombre de la carpeta para evitar posibles problemas
función sanitizefoldername (snewfoldername)
Dim Oregex
Establecer OREGEX = nuevo Regexp
Oregex.Global = True
'Eliminar.
Oregex.pattern = (/.|//|//|/|:|/?|/*||/<|/////>|igur
Sanitizefledername = Oregex.replace (Snewfoldername, _)
Establecer Oregex = nada
función final
'Haga una limpieza del nombre del archivo para evitar posibles problemas
función SanitizeFileName (snewFileName)
Dim Oregex
Dim oext
Establecer OREGEX = nuevo Regexp
Oregex.Global = True
if (configForcsingleExtension = true) entonces entonces
Oregex.pattern = /.(?!cul^.font>$)
slewfileName = Oregex.replace (snewfileName, _)
'Obtenga la extensión del archivo
slewFileName = MakeFileName (ahora ()) &. & getExtend (snewfileName)
final si
'Eliminar / |
Oregex.Pattern = (// | // |/|: |/?/*||/<| //////> | [/u0000-/u001f] |/u007f)
SanitizeFileName = Oregex.replace (snewfileName, _)
Establecer Oregex = nada
función final
Función getExtend (nombre de archivo)
Dim TMP
Si el nombre de archivo <> entonces
tmp = mid (nombre de archivo, instrrev (nombre de archivo ,.)+1, len (nombre de archivo) -instrrev (nombre de archivo ,.)))
tmp = lcase (TMP)
Si Instr (1, TMP, ASP)> 0 o Instr (1, TMP, PHP)> 0 o Instr (1, TMP, PHP3)> 0 o Instr (1, TMP, ASPX)> 0 entonces
getExtend = txt
demás
getExtend = tmp
final si
demás
getExtend =
final si
Función final
función MakeFileName (FNAME)
fname = fname 'First Fname es una variable, y este último fname es una referencia de parámetro de función
fname = reemplazar (fname,-,)
fname = reemplazar (fname ,,)
fname = reemplazar (fname, :,)
fname = reemplazar (fname, pm,)
fname = reemplazar (fname, am,)
fname = reemplazar (fname, mañana)
fname = reemplazar (fname, tarde,)
MakefileName = fname
función final
'Esta es la función que envía los resultados del proceso de carga.
Sub SenduploadResults (Errornumber, FileUrl, FileName, Custommsg)
Respuesta.
Response.write <script type = text/javaScript>
'Versión miniificada del documento. Domain Script automático de fijación (#1919).
'El script original se puede encontrar en _dev/domain_fix_template.js
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;}}}) () ;
Response.Write Window.Parent.onuploadCompleted (& Errornumber &, & Reemplazar (FileUrl ,, /) &, & Reemplazar (nombre de archivo ,, /) & y reemplazar (custommsg ,, /) &);
Response.Write </script>
Respuesta.
Final
%>