Ich muss kürzlich Fckeditor studieren, und es ist die ASP -Version. Benennen Sie die Datei nach dem Hochladen um. Sie ist sehr deprimierend. Die folgenden Aufzeichnungen über meinen Änderungsprozess und einige Funktionen stammen aus dem Netzwerk. Positioniert auf: Editor/Filemanager/Connectors/ASP/IO.asp
Der Hauptzweck besteht darin, die Funktion zu ändern: sanitizeFileName und eine Methode, um die Erweiterung und die Umbenennung von Dateien zu erhalten.
Die Codekopie lautet wie folgt:
'Machen Sie eine Reinigung des Dateinamens, um mögliche Probleme zu vermeiden
Funktionseinrichtungen (SnewFileName)
Dimer OreGex
Dim Oext
Setzen Sie Oregex = New Regexp
oregex.global = true
if (configForcesingleextension = true) dann
oregex.pattern = /.(?!?^. weibliches*$)
SnewFileName = Oregex.Replace (SnewFileName, _)
'Holen Sie sich die Dateierweiterung
SnewFileName = MakefileName (Now ()). & GetExtend (SnewFileName)
Ende wenn
'entfernen / / |
oregex.pattern = (// | // |/|: |/? |/*||/<| /////> | [/u0000-/u001f] |/u007f)
SanitizeFileName = oregex.replace (SnewFileName, _)
Setzen Sie Oregex = nichts
Endfunktion
Funktion getextend (Dateiname)
Dim TMP
Wenn Dateiname <> dann
TMP = MID (Dateiname, Instrrev (Dateiname,)+1, Len (Dateiname) -instrorv (Dateiname ,.)))
TMP = Lase (TMP)
Wenn Instrument (1, TMP, ASP)> 0 oder Instrument (1, TMP, Php)> 0 oder Instrument (1, TMP, Php3)> 0 oder Instrument (1, TMP, Aspx)> 0, dann dann
getextend = txt
anders
getextend = tmp
Ende wenn
anders
getextend =
Ende wenn
Endfunktion
Funktion MakefileName (fname)
fname = fname 'erster fname ist eine variable und letzterer fname ist eine Funktionsparameterreferenz
fname = ersetzen (fname,-,)
fname = ersetzen (fname,,)
fname = ersetzen (fname,:,)
fname = ersetzen (fname, pm,)
fname = ersetzen (fname, am,)
fname = ersetzen (Fname, Morgen,)
fname = ersetzen (fname, Nachmittag,)
MakefileName = fname
Endfunktion
Wenn Sie zu faul sind, um sich zu ändern, kopieren Sie einfach den folgenden Code:
Die Codekopie lautet wie folgt:
<%
'Fckeditor - Der Texteditor für Internet - http://www.fckeditor.net
'Copyright (C) 2003-2009 Frederico Caldeira Knabben
''
'== begin lizenz ==
''
'Lizenziert nach den Bedingungen einer der folgenden Lizenzen bei Ihnen
' Auswahl:
''
' - GNU Allgemeine öffentliche Lizenzversion 2 oder höher (die GPL)
'http://www.gnu.org/licenses/gpl.html
''
' - gnu weniger allgemeine öffentliche Lizenzversion 2.1 oder höher (die LGPL)
'http://www.gnu.org/licenses/lgpl.html
''
' - Mozilla Public Lizenz Version 1.1 oder höher (die MPL)
'http://www.mozilla.org/mpl/mpl-1.1.html
''
'== End -Lizenz ==
''
'Diese Datei enthält IO -spezifische Funktionen, die vom ASP -Anschluss verwendet werden.
%>
<%
Funktion kombinierte Pathe (sbasepath, sfolker)
Sfolker = Ersetzen (Sfolder, /, /)
CombinePaths = removeFromend (sbasepath, /) & / & removeFromStart (Sfolder, /)
Endfunktion
Funktionskombinationspaths (Sbasepath, Sfolker)
Sfolker = Ersetzen (Sfolder, /, /)
Die Funktionen entfernen* Funktionen verwenden Regexp, daher müssen wir dem / entkommen
CombinElocalPaths = removeFromend (sbasepath, //) & / & removeFromstart (SFOLDER, //)
Endfunktion
Funktion getResourcetypepath (Ressourcene, Stift)
if (Scommand = QuickUpload) dann
GetResourcetypepath = configQuickUploadPath.Item (Ressourcene)
anders
GetResourcetypepath = configFileTypespath.Item (Ressourcentyp)
Ende wenn
Endfunktion
Funktion getResourcetypedirectory (Resourcetype, STROMAND)
if (Scommand = QuickUpload) dann
if (configQuickUploadabSolutepath.Item (ressourceneType) <>) dann
GetResourcetypedirectory = configquickUploadabSolutepath.Item (Ressourcene)
anders
'Kartieren Sie den Pfad von UserFiles in ein lokales Verzeichnis.
GetResourcetypedirectory = server.mappath (configQuickUploadPath.Item (Resourcetype)))
Ende wenn
anders
if (configFileTypesabSolutepath.Item (ressourceneType) <>) dann
GetResourcetypedirectory = configFileTypesabSolutepath.Item (Ressourcene)
anders
'Kartieren Sie den Pfad von UserFiles in ein lokales Verzeichnis.
GetResourcetypedirectory = server.mappath (configfiletypespath.Item (ressourcetype))
Ende wenn
Ende wenn
Endfunktion
Funktion geturlfompath (Resourcetyp, OrdnerPath, STROMMAND)
Geturlfrompath = kombinierpaths (getResourcetypepath (Ressourcene, Stift), OrdnerPath)
Endfunktion
Funktion Remorextension (Dateiname)
Remedextesion = links (Dateiname, Instrrev (Dateiname,.) - 1)
Endfunktion
Funktion ServermapFolder (Resourcetype, OrdnerPath, SPROMMAND)
Dim Sresourcetypepath
»Holen Sie sich das Ressourcenverzeichnis.
sresourcetypepath = getResourcetypedirectory (Resourcetype, STROMMAND)
»Stellen Sie sicher, dass das Verzeichnis existiert.
CreateServerFolder Sresourcetypepath
'Geben Sie das Ressourcentypverzeichnis in Kombination mit dem erforderlichen Pfad zurück.
ServermapFolder = combinelocalPaths (sresourcetypepath, OrdnerPath)
Endfunktion
Sub createServerFolder (OrdnerPath)
Düster
Set ofso = server.createObject (scripting.FilesSystemObject)
Dunkel sparent
sparent = ofso.getParentFoldername (OrdnerPath)
'Wenn OrdnerPath ein Netzwerkpfad (// Server/Ordner/) ist, dann ist Sparent eine leere Zeichenfolge.
' Aussteigen.
if (sparent =) dann beenden sub
»Überprüfen Sie, ob der Elternteil existiert, oder erstellen Sie es.
Wenn (nicht von so.Fortenexists (sparent)) dann erzeugt wird, (Sparent)
If (OFSO.FORDEREXISTS (OrdnerPath) = false) dann
Bei der nächsten Fehleraufnahme als nächstes
OFSO.CreateFolder (OrdnerPath)
Wenn err.number <> 0 dann
Dimer Serrornumber
Dimer Ierrnumber, Serrdeskription
Ierrnumber = err.number
serrDescription = err.description
Bei Fehler goto 0
Wählen Sie Case iErnumber
Fall 52
serrornumber = 102 'Ungültiger Ordner Name.
Fall 70
serrornumber = 103 'Sicherheitsfehler.
Fall 76
serrornumber = 102 'Pfad zu lang.
Fall sonst
serrornumber = 110
Ende auswählen
SendError serrornumber, createsServerFolder (& OrdnerPath &): & serrdescription
Ende wenn
Ende wenn
Set ofso = nichts
Ende sub
Funktion isallowedext (Erweiterung, Ressourcene)
Dunkeler Erz
Setzen Sie Ore = New Regexp
ore.ignorecase = true
ore.global = true
Dunkel blühend, senied
sonaled = configallowedextensions.Item (Ressourcetyp)
sDenied = configDeniDextensions.Item (Resourcetype)
Isallowedext = true
Wenn senied <> dann
ore.pattern = senied
Isallowedext = nicht Erzest (Erweiterung)
Ende wenn
Wenn isallowedext und fahles <> dann
ore.pattern = talowed
Isallowedext = ore.test (Erweiterung)
Ende wenn
Setzen Sie Erz = nichts
Endfunktion
Function isallowedType (Ressourcentyp)
Dunkeler Erz
Setzen Sie Ore = New Regexp
ore.ignorecase = false
ore.global = true
ore.pattern = ^(& configallowedTypes &) $
IsallowedType = ore.test (ressourcetyp)
Setzen Sie Erz = nichts
Endfunktion
Funktion isallowedCommand (STROMAND)
Dunkeler Erz
Setzen Sie Ore = New Regexp
ore.ignorecase = true
ore.global = true
ore.pattern = ^(& configallowedcommands &) $
Isallowedcommand = ore.test (stirpand)
Setzen Sie Erz = nichts
Endfunktion
Funktion getCurrentFolder ()
Dimer SkurrentFolder
Dimer OreGex
SkurrentFolder = Request.queryString (StromFolder)
If (scurrentFolder =) dann scurrentFolder = / /
'Überprüfen Sie die aktuelle Ordnersyntax (muss beginnen und mit einem Schrägstrich beginnen).
If (rechts (SkurrentFolder, 1) <> /), dann SkurrentFolder = SkurrentFolder & /
If (links (SkurrentFolder, 1) <> /), dann ScurrentFolder = / & ScurrentFolder
'Überprüfen Sie, ob ungültige Ordnerpfade (..)
If (instr (1, SkurrentFolder, ..) <> 0 oder Instrument (1, SkurrentFolder, /) <> 0) Dann
SendError 102,
Ende wenn
Setzen Sie Oregex = New Regexp
oregex.global = true
oregex.pattern = (//.)|(//)|inner(//:/*/?//</>/| weise
if (oregex.test (uncurrentFolder)) dann
SendError 102,
Ende wenn
GetCurrentFolder = SkurrentFolder
Endfunktion
'Machen Sie eine Reinigung des Ordnernamens, um mögliche Probleme zu vermeiden
Funktionseinrichtungen (Snewfoldername)
Dimer OreGex
Setzen Sie Oregex = New Regexp
oregex.global = true
'Entfernen Sie.
oregex.pattern = (/.|/|//|/|:|/?|/*|/<|////> Massen-/u0000-/u001f weise/u007f)
SanitizeFoldername = oregex.replace (Snewfoldername, _)
Setzen Sie Oregex = nichts
Endfunktion
'Machen Sie eine Reinigung des Dateinamens, um mögliche Probleme zu vermeiden
Funktionseinrichtungen (SnewFileName)
Dimer OreGex
Dim Oext
Setzen Sie Oregex = New Regexp
oregex.global = true
if (configForcesingleextension = true) dann
oregex.pattern = /.(?!?^. weibliches*$)
SnewFileName = Oregex.Replace (SnewFileName, _)
'Holen Sie sich die Dateierweiterung
SnewFileName = MakefileName (Now ()) &. & GetExtend (SnewFileName)
Ende wenn
'entfernen / / |
oregex.pattern = (// | // |/|: |/? |/*||/<| /////> | [/u0000-/u001f] |/u007f)
SanitizeFileName = oregex.replace (SnewFileName, _)
Setzen Sie Oregex = nichts
Endfunktion
Funktion getextend (Dateiname)
Dim TMP
Wenn Dateiname <> dann
TMP = MID (Dateiname, Instrrev (Dateiname,)+1, Len (Dateiname) -instrorv (Dateiname ,.)))
TMP = Lase (TMP)
Wenn Instrument (1, TMP, ASP)> 0 oder Instrument (1, TMP, Php)> 0 oder Instrument (1, TMP, Php3)> 0 oder Instrument (1, TMP, Aspx)> 0, dann dann
getextend = txt
anders
getextend = tmp
Ende wenn
anders
getextend =
Ende wenn
Endfunktion
Funktion MakefileName (fname)
fname = fname 'erster fname ist eine variable und letzterer fname ist eine Funktionsparameterreferenz
fname = ersetzen (fname,-,)
fname = ersetzen (fname,,)
fname = ersetzen (fname,:,)
fname = ersetzen (fname, pm,)
fname = ersetzen (fname, am,)
fname = ersetzen (Fname, Morgen,)
fname = ersetzen (fname, Nachmittag,)
MakefileName = fname
Endfunktion
'Dies ist die Funktion, die die Ergebnisse des Uploading -Prozesses sendet.
SubsendUploadResults (Errornumber, FileUrl, Dateiname, CustomMSG)
Antwort.Clear
Antwort.Write <script type = text/javaScript>
'Miniified Version des Dokuments.Domain Automatic Fix Skript (#1919).
'Das ursprüngliche Skript finden Sie unter _dev/domain_fix_template.js
Response.write (function () {var d = document.domain; while (true) {try {var a = window.parent.document .*? (?:/. | $)/, ''); if (d.length == 0) break; try {document.domain = d;} catch (e) {break;}}}) ()) ;
Response.write window.parent.onUploadCompleted (& errornumn &, & ersetzen (fileurl, /) &, & ersetzen (Dateiname, /) &, & ersetzen (CustomMSG, /) &);
Response.write </script>
Antwort.end
Ende sub
%>