私は最近FCKEDITORを勉強しなければなりません、そしてそれはASPバージョンです。アップロード後にファイルの名前を変更してください。次の記録私の変更プロセスといくつかの機能はネットワークから来ています。配置:編集者/FileManager/Connectors/ASP/io.asp
主な目的は、関数を変更することです。SanitizeFileName、および詳細なコードを次のように取得する方法を追加します。
コードコピーは次のとおりです。
「可能な問題を避けるために、ファイル名をクリーンアップしてください
関数SanitizeFileName(SnewFileName)
薄暗い産科
dim oext
Set Oregex = new regexp
oregex.global = true
if(configforceSingleExtension = true)then
oregex.pattern = /.(?![^. ]*$)
snewfilename = oregex.replace(snewfilename、_)
'ファイル拡張子を取得します
snewfilename = makefilename(now())。&getextend(snewfilename)
ifを終了します
'削除 / |: * <>
oregex.pattern =(// | // |/|:|/?|/*||/<| //////> | [/u0000-/u001f] |/u007f)
SanitizeFileName = oregex.Replace(snewfileName、_)
Set Oregex = Nothing
エンド関数
function getextend(filename)
DIM TMP
filename <> thenの場合
TMP = MID(FILENAME、INSTREV(FILENAME、。)+1、LEN(FILENAME)-INSTRREV(FILENAME、。))
TMP = LCase(TMP)
if instr(1,tmp,asp)>0 or instr(1,tmp,php)>0 or instr(1,tmp,php3)>0 or instr(1,tmp,aspx)>0 then
getextend = txt
それ以外
getExtend = tmp
ifを終了します
それ以外
getextend =
ifを終了します
エンド関数
関数makefilename(fname)
fname = fname 'first fnameは変数であり、後者のfnameは関数パラメーターリファレンスです
fname = cheplage(fname、 - 、)
fname = cheplage(fname 、、)
fname = leppled(fname、:、)
fname = cheplage(fname、pm、)
fname = cheplage(fname、am、)
fname = cheplage(fname、morning、)
fname = cheplage(fname、午後、)
makefilename = fname
エンド関数
あなたが怠zyが変更できない場合は、次のコードをコピーするだけです。
コードコピーは次のとおりです。
<%
'fckeditor -インターネットのテキストエディター-http://www.fckeditor.net
'Copyright(c)2003-2009 Frederico Caldeira Knabben
'
'== beginライセンス==
'
'以下のライセンスのいずれかの条件に基づいてライセンスされている
'選択:
'
'-GNU一般公開ライセンスバージョン2以降(GPL)
'http://www.gnu.org/licenses/gpl.html
'
'-GNU以下の一般公開ライセンスバージョン2.1以降(LGPL)
'http://www.gnu.org/licenses/lgpl.html
'
'-Mozillaパブリックライセンスバージョン1.1以降(MPL)
'http://www.mozilla.org/mpl/mpl-1.1.html
'
'==終了ライセンス==
'
'このファイルには、ASPコネクタで使用されるIO固有の関数が含まれています。
%>
<%
関数の結合(sbasepath、sfolder)
sfolder = cheplage(sfolder、 /、 /)
combinepaths = removefromend(sbasepath、 /)& /&&removefromstart(sfolder、 /)
エンド関数
関数combinelocalpaths(sbasepath、sfolder)
sfolder = cheplage(sfolder、 /、 /)
'removefrom*関数はregexpを使用しているので、 /
combinelocalpaths = removeFromend(sbasepath、//)& /&&removefromstart(sfolder、//)
エンド関数
関数getResourCeTypePath(ResourceType、Scommand)
if(scommand = quickupload)then
getResourcetypepath = configquickuploadpath.item(resourceType)
それ以外
getResourcetypaTh = configfiletypespath.item(resourceType)
ifを終了します
エンド関数
関数getResourCeTypedirectory(ResourceType、Scommand)
if(scommand = quickupload)then
if(configquickuploadabsolutepath.item(resourcetype)<>)then
getResourcetypedirectory = configquickuploadabsolutepath.item(resourcetype)
それ以外
'ユーザーファイルパスをローカルディレクトリにマップします。
getResourcetypedirectory = server.mappath(configquickuploadpath.item(resourcetype)))
ifを終了します
それ以外
if(configfiletypesabsolutepath.item(resourcetype)<>)then
getResourCetypedirectory = configfiletypeSabsolutepath.item(resourcetype)
それ以外
'ユーザーファイルパスをローカルディレクトリにマップします。
getResourcetypedirectory = server.mappath(configfiletypespath.item(resourcetype)))
ifを終了します
ifを終了します
エンド関数
関数geturlfrompath(ResourceType、FolderPath、Scommand)
geturlfrompath = combinepaths(getResourCeTypePath(ResourceType、Scommand)、FolderPath)
エンド関数
関数removeExtension(filename)
removeExtension = left(filename、instrrev(filename、。)-1)
エンド関数
function servermapfolder(resourceType、folderpath、scommand)
薄暗いSresourceTypepath
'リソースタイプディレクトリを取得します。
sresourcetypepath = getResourCetypedirectory(ResourceType、Scommand)
'ディレクトリが存在することを確認してください。
createServerfolder sresourcetypepath
'必要なパスと組み合わせたリソースタイプディレクトリを返します。
serverMapFolder = combinelocalPaths(SRESOURCETYPEPATH、FOLDERPATH)
エンド関数
sub createServerFolder(folderPath)
dimso
ofso = server.createObject(scripting.filesystemobject)set
薄暗いスパレント
sparent = ofso.getParentFoldername(folderpath)
'FolderPathがネットワークパス(//サーバー/フォルダー/)である場合、Sparentは空の文字列です。
' 出て行け。
if(sparent =)その後、subを終了します
'親が存在するかどうかを確認するか、作成します。
if(ofso.folderexists(sparent))からcreateserverfolder(sparent)
(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、createServerfolder(&folderpath&):&serrdescription
ifを終了します
ifを終了します
ofso =何もありません
End Sub
function isallowedext(extension、resourceType)
薄暗い
鉱石= new regexpを設定します
ore.ignorecase = true
ore.global = true
薄暗い、sdenied
sallowed = configallowedextensions.item(resourceType)
sdenied = configdeniedextensions.item(resourceType)
isallowedext = true
sdenied <> thenの場合
ore.pattern = sdenied
isallowedext = not ore.test(拡張子)
ifを終了します
isallowedextとsallowed <> then
ore.pattern = sallowed
ISALLOWEDEXT = ORE.TEST(拡張子)
ifを終了します
鉱石=何もありません
エンド関数
関数isallowedType(ResourceType)
薄暗い
鉱石= new regexpを設定します
ore.ignorecase = false
ore.global = true
ore.pattern = ^(&configallowedtypes&)$
ISALLOWEDTYPE = ORE.TEST(ResourceType)
鉱石=何もありません
エンド関数
関数isallowedCommand(scommand)
薄暗い
鉱石= new regexpを設定します
ore.ignorecase = true
ore.global = true
ore.pattern = ^(&configallowedCommands&)$
isallowedCommand = ore.test(scommand)
鉱石=何もありません
エンド関数
関数getCurrentFolder()
Dim ScurrentFolder
薄暗い産科
scurrentFolder = request.queryString(currentFolder)
if(scurrentfolder =)thens scurrentfolder = /
'現在のフォルダーの構文を確認します(スラッシュから始めて開始する必要があります)。
if(right(scurrentfolder、1)<> /)then scurrentfolder = scurrentFolder& /
if(left(scurrentfolder、1)<> /)thenscurrentfolder = /&scurrentFolder
'無効なフォルダーパス(..)を確認する
if(strust(1、scurrentfolder、..)<> 0またはstrunt(1、scurrentfolder、 /)<> 0)then
SendError 102、
ifを終了します
Set Oregex = new regexp
oregex.global = true
oregex.pattern =(//.)|(/////:// ?//////1/ ]|......u0000-/u001f ]|/u007f
if(oregex.test(scurrentfolder))then
SendError 102、
ifを終了します
getCurrentFolder = scurrentFolder
エンド関数
「可能な問題を避けるために、フォルダー名をクリーンアップしてください
関数SanitizeFoldername(SnewFoldername)
薄暗い産科
Set Oregex = new regexp
oregex.global = true
'削除 / |
oregex.pattern =(/.|///////1:|/ ?|/////////////////////u0000-/u001f ]|/u007f)
SanitizeFoldername = oregex.Replace(snewfoldername、_)
Set Oregex = Nothing
エンド関数
「可能な問題を避けるために、ファイル名をクリーンアップしてください
関数SanitizeFileName(SnewFileName)
薄暗い産科
dim oext
Set Oregex = new regexp
oregex.global = true
if(configforceSingleExtension = true)then
oregex.pattern = /.(?![^. ]*$)
snewfilename = oregex.replace(snewfilename、_)
'ファイル拡張子を取得します
snewfilename = makefilename(now())&。&getextend(snewfilename)
ifを終了します
'削除 / |: * <>
oregex.pattern =(// | // |/|:|/?|/*||/<| //////> | [/u0000-/u001f] |/u007f)
SanitizeFileName = oregex.Replace(snewfileName、_)
Set Oregex = Nothing
エンド関数
function getextend(filename)
DIM TMP
filename <> thenの場合
TMP = MID(FILENAME、INSTREV(FILENAME、。)+1、LEN(FILENAME)-INSTRREV(FILENAME、。))
TMP = LCase(TMP)
if instr(1,tmp,asp)>0 or instr(1,tmp,php)>0 or instr(1,tmp,php3)>0 or instr(1,tmp,aspx)>0 then
getextend = txt
それ以外
getExtend = tmp
ifを終了します
それ以外
getextend =
ifを終了します
エンド関数
関数makefilename(fname)
fname = fname 'first fnameは変数であり、後者のfnameは関数パラメーターリファレンスです
fname = cheplage(fname、 - 、)
fname = cheplage(fname 、、)
fname = leppled(fname、:、)
fname = cheplage(fname、pm、)
fname = cheplage(fname、am、)
fname = cheplage(fname、morning、)
fname = cheplage(fname、午後、)
makefilename = fname
エンド関数
「これは、アップロードプロセスの結果を送信する関数です。
sub senduploadresults(errornumber、fileurl、filename、custommsg)
Response.Clear
respons.write <script type = text/javascript>
'Document.domain Automatic Fixスクリプト(#1919)のミニフォームバージョン。
'元のスクリプトは、_dev/domain_fix_template.jsにあります
respons.write(function(){var d = document.domain; while(true){try {var a = parent.document.domain; break;} catch(e){}; d = d.Replace(// 。*?(?:/。| $)/、 ''); if(d.length == 0)break; try {document.domain = d;} catch(e){break;}})()()() ;
respons.write window.parent.onuploadcompleted(&errornumber&、&&&fileurl、、 /)&、&&and&filename(filename、 /)&、&and&and&and(custommsg、、 /)&);
Response.Write </script>
Response.End
End Sub
%>