Недавно я должен изучать Fckeditor, и это версия ASP. Переименовать файл после загрузки его очень удручает. Следующие записывают мой процесс модификации, и некоторые функции поступают из сети. Расположено на: редактор/filemanager/connectors/asp/io.asp
Основная цель состоит в том, чтобы изменить функцию: sanitizefilename и добавить метод для получения расширения и переименования файлов.
Кода -копия выглядит следующим образом:
'Сделайте очистку имени файла, чтобы избежать возможных проблем
Функция sanitizefilename (snwefilename)
Dim Oregex
Dim Oext
SET OREGEX = NEW REGEXP
oregex.global = true
if (configforcesingExtension = true) тогда
oregex.pattern = /.(?
snwefilename = oregex.replace (snewfilename, _)
'Получите расширение файла
snwefilename = makefilename (теперь ()). & getextend (snewfilename)
конец, если
'Удалить / / |
oregex.pattern = (// | // |/|: |/?
Sanitizefilename = oregex.replace (snwefilename, _)
Установить oregex = ничего
конечная функция
Функция getExtend (имя файла)
Dim TMP
Если имя файла <> then
tmp = mid (имя файла, instrrev (filename ,.)+1, len (имя файла) -instrrev (имя файла ,.))
tmp = lcase (tmp)
Если instr (1, tmp, asp)> 0 или instr (1, tmp, php)> 0 или instr (1, tmp, php3)> 0 или instr (1, tmp, aspx)> 0 тогда
getExtend = txt
еще
getExtend = tmp
конец, если
еще
getExtend =
конец, если
Конечная функция
функция MakeFilename (fname)
fname = fname 'Первым fname является переменной, а последнее Fname - это ссылка на параметр функции
fname = reply (fname,-,)
fname = reply (fname ,,)
fname = reply (fname, :,)
fname = reply (fname, pm,)
fname = reply (fname, am,)
fname = reply (fname, утро,)
fname = reply (fname, днем,)
MakeFilename = fname
конечная функция
Если вам лень изменить, просто скопируйте следующий код:
Кода -копия выглядит следующим образом:
<%
'Fckeditor - текстовый редактор Интернета - http://www.fckeditor.net
Copyright (C) 2003-2009
'
'== Начало лицензию ==
'
'Лицензировано в соответствии с условиями любой из следующих лицензий на вашем
' выбор:
'
' - GNU General Public Public License версия 2 или более поздней версии (GPL)
'http://www.gnu.org/licenses/gpl.html
'
' - GNU меньше общей публичной лицензии версии 2.1 или более поздней версии (LGPL)
'http://www.gnu.org/licenses/lgpl.html
'
' - Mozilla Public License версия 1.1 или более поздней версии (MPL)
'http://www.mozilla.org/mpl/mpl-1.1.html
'
'== конечная лицензия ==
'
«Этот файл включает в себя специфические функции IO, используемые разъемом ASP.
%>
<%
Функция CombinePaths (SBASEPATH, SFFOLDER)
sfolder = reply (sfolder, /, /)
CombinePaths = removeFromend (sbasepath, /) и / & removeFromStart (sfolder, /)
конечная функция
функции CombineLocalPaths (SBASEPATH, SFFOLDER)
sfolder = reply (sfolder, /, /)
Функции removefrom* используют regexp, поэтому мы должны избежать /
CombineLocalPaths = removeFromend (SBASEPATH, //) & / & removeFromStart (sfolder, //)
конечная функция
Функция getResourcetypepath (resourceType, scommand)
if (scommand = Quickupload), тогда
GetResourcetypepath = configquickuploadpath.item (resourcetype)
еще
GetResourcetypepath = configFileTypespath.item (resourcetype)
конец, если
конечная функция
Функция getResourceTypedIrectory (resourceType, Scommand)
if (scommand = Quickupload), тогда
if (configquickuploadabsolutepath.item (resourcetype) <>) тогда
GetResourceTypedIrectory = configQuickUploadAbSolutePath.item (resourcetype)
еще
'Сопоставьте путь userfiles в локальный каталог.
GetResourceTypedIrectory = server.mappath (configquickuploadpath.item (resourcetype))
конец, если
еще
if (configFileTypeSabSolutePath.item (resourcetype) <>) тогда
GetResourceTypedIrectory = configFileTypeSabSolutePath.item (resourcetype)
еще
'Сопоставьте путь userfiles в локальный каталог.
GetResourcetypedIrectory = server.mappath (configfiletypespath.item (resourcetype))
конец, если
конец, если
конечная функция
Функция geturlfrompath (resourceType, folderPath, Scommand)
Geturlfrompath = combinepaths (getresourcetypepath (resourcetype, scommand), foterpath)
Конечная функция
Функция removeExtension (имя файла)
RemoveExtension = Left (имя файла, Instrrev (имя файла,.) - 1)
Конечная функция
Функциональный серверный картер (ResourceType, FolderPath, Scommand)
Dim sresourcetypepath
«Получите каталог типа ресурса.
sresourcetypepath = getResourceTypedIrectory (ResourceType, Scommand)
«Убедитесь, что каталог существует.
CreateServerFolder Sresourcetypepath
«Верните каталог типа ресурса в сочетании с необходимым путем.
Servermapfolder = combineLocalPaths (sresourcetypepath, fotherpath)
Конечная функция
Sub createServerFolder (FoterPath)
Dim Ofso
Set ofso = server.createObject (scripting.filesystemobject)
Тусклый спарент
sparent = ofso.getParentFolderName (FOLDERPATH)
«Если FOLDERPATH - это сетевой путь (// Сервер/Папка/), то Sparent - это пустая строка.
' Убирайся.
if (sparent =), затем выйдите
«Проверьте, существует ли родитель или создайте его.
Если (не ofso.folderexists (sparent)), то CreateServerFolder (Sparent)
If (ofso.folderexists (folderpath) = false) тогда
При ошибке резюме следующим
ofso.createfolder (folderpath)
Если err.number <> 0, тогда
Dim Serrornumber
Dim Ierrnumber, Serrdescription
ierrnumber = err.number
serrdescription = err.description
При ошибке goto 0
Выберите случай Ierrnumber
Случай 52
Serrornumber = 102 'Неверное имя папки.
Случай 70
Serrornumber = 103 'Ошибка безопасности.
Случай 76
Serrornumber = 102 'Путь слишком долго.
Случай еще
Serrornumber = 110
Конец выбора
SendError Serrornumber, CreateServerFolderer (& FoterPath &): & SerrDescription
конец, если
Конец, если
Наборсо = ничего
Конец суб
Функция islowedext (расширение, ресурсы)
Тусклое руда
SET ORE = New Regexp
ore.ignorecase = true
ore.global = true
Dim Sailted, Sdenied
sallowed = configallowedextensions.item (resourcetype)
sdenied = confighenieDextensions.item (resourcetype)
Isallowedext = true
Если sdenied <> то
ore.pattern = sdenied
Isallowedext = not ore.test (расширение)
Конец, если
Если IsAllowedext и Sailted <> Then Then
ore.pattern = sawlowed
Isallowedext = ore.test (расширение)
Конец, если
Установить руду = ничего
Конечная функция
Функция islowedType (resourcetype)
Тусклое руда
SET ORE = New Regexp
ore.ignorecase = false
ore.global = true
ore.pattern = ^(& configallowedTypes &) $
IslowedType = ore.test (resourceType)
Установить руду = ничего
Конечная функция
Функция islowedCommand (Scommand)
Тусклое руда
SET ORE = New Regexp
ore.ignorecase = true
ore.global = true
ore.pattern = ^(& configallowedCommands &) $
Islowedcommand = ore.test (scommand)
Установить руду = ничего
Конечная функция
функция getCurrentFolder ()
Dim ScurrentFolder
Dim Oregex
ScurrentFolder = request.QueryString (CurrentFolder)
If (ScurrentFolder =), затем ScurrentFolder = /
«Проверьте текущий синтаксис папок (необходимо начать и начать с удара).
If (right (ScurrentFolder, 1) <> /), Then ScurrentFolder = ScurrentFolder & / / /
If (слева (ScurrentFolder, 1) <> /), затем ScurrentFolder = / & ScurrentFolder
'Проверьте неверные пути папок (..)
If (instr (1, scurrentfolder, ..) <> 0 или instr (1, scurrentfolder, /) <> 0) тогда
Senderror 102,
Конец, если
SET OREGEX = NEW REGEXP
oregex.global = true
oregex.pattern = (//.)|(///)|мас
if (oregex.test (ScurrentFolder)) тогда
Senderror 102,
Конец, если
GetCurrentFolder = ScurrentFolder
конечная функция
'Сделайте очистку имени папки, чтобы избежать возможных проблем
Функция дезинфицирующегося напользунность (snewfoldername)
Dim Oregex
SET OREGEX = NEW REGEXP
oregex.global = true
'Удалить.
oregex.pattern = (/.|/7/7/|:|/?|/*| 000/<|/////>| word
SanitizeFolderName = oregex.replace (snewfoldername, _)
Установить oregex = ничего
конечная функция
'Сделайте очистку имени файла, чтобы избежать возможных проблем
Функция sanitizefilename (snwefilename)
Dim Oregex
Dim Oext
SET OREGEX = NEW REGEXP
oregex.global = true
if (configforcesingExtension = true) тогда
oregex.pattern = /.(?
snwefilename = oregex.replace (snewfilename, _)
'Получите расширение файла
snwefilename = makefilename (теперь ()) &. & getextend (snwefilename)
конец, если
'Удалить / / |
oregex.pattern = (// | // |/|: |/?
Sanitizefilename = oregex.replace (snwefilename, _)
Установить oregex = ничего
конечная функция
Функция getExtend (имя файла)
Dim TMP
Если имя файла <> then
tmp = mid (имя файла, instrrev (filename ,.)+1, len (имя файла) -instrrev (имя файла ,.))
tmp = lcase (tmp)
Если instr (1, tmp, asp)> 0 или instr (1, tmp, php)> 0 или instr (1, tmp, php3)> 0 или instr (1, tmp, aspx)> 0 тогда
getExtend = txt
еще
getExtend = tmp
конец, если
еще
getExtend =
конец, если
Конечная функция
функция MakeFilename (fname)
fname = fname 'Первым fname является переменной, а последнее Fname - это ссылка на параметр функции
fname = reply (fname,-,)
fname = reply (fname ,,)
fname = reply (fname, :,)
fname = reply (fname, pm,)
fname = reply (fname, am,)
fname = reply (fname, утро,)
fname = reply (fname, днем,)
MakeFilename = fname
конечная функция
«Это функция, которая посылает результаты процесса загрузки.
Subs SenduploadResults (Errornumber, FileUrl, FileName, CustomMSG)
Response.clear
Response.write <script type = text/javascript>
'Miniified Version of Document.Domain Automatic Fix Script (#1919).
'Исходный скрипт можно найти по адресу _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 (/ .*? (? ;
Response.write window.parent.onuploadcompleted (& errornumber &, & replace (fileUrl,, /) &, & reply (fileName,, /) & & reply (custommsg, /) &);
Response.write </script>
Response.end
Конец суб
%>