看大家要FCKeditor上傳設置的部分,所以仔細找了下,以前看到別人說FCKeditor有上傳漏洞,所以一直沒有用過此功能!希望能夠解決大家的問題!
因版本更新問題,可能具體行數不一致,請大家仔細修改!謝謝大家的關注!
FCKeditor目前已經更新到2.4.2版,詳情請看官方http://www.fckeditor.net/
上傳文件設置簡潔
fckconfig.js
134 135 行
[code]
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php[/code]
第一個是文件瀏覽器使用的語言,第二個快速上傳使用的語言,改成你需要的。註釋是參考值
139行:
[code]
var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;
[/code]
不要去管。
141行
[code]
FCKConfig.LinkBrowser = false ; 是否在鏈接功能裏面啓用服務器文件瀏覽功能[/code]
158 159的
[code]
FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all
FCKConfig.LinkUploadDeniedExtensions =".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$"
[/code]
這是兩個允許和拒絕上傳的文件類型列表,注意是正則表達式,在這個文件裏設置的擴展名列表是在客戶端進行判斷的。
相應的其他類型還有各自的列表
146
[code]
FCKConfig.ImageBrowser = false ;是否在插入圖片功能裏面啓用服務器文件瀏覽功能
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
[/code]
注意?Type=Image 表示文件類型是image這會使文件瀏覽器定位到文件上傳路徑/image/文件夾下面
[code]
FCKConfig.FlashBrowser = false ;是否在插入flash功能中啓用服務器文件瀏覽功能
[/code]
相應的type=flash 不再多說
156
FCKConfig.LinkUpload = false ;是否啓用插入鏈接的快速上傳功能
161
FCKConfig.ImageUpload = false ;是否啓用圖片快速上傳功能
166
FCKConfig.FlashUpload = false ;是否啓用flash上傳功能
服務器文件設置
文件瀏覽器的設置:
FCKeditor/editor/filemanager/browser/default/connectors/
asp/
config.asp設置
23 行
[code]
ConfigIsEnabled = true 決定是否啓用文件瀏覽器。這個是在服務器上執行的
27行
ConfigUserFilesPath = "/test/upload/" 上傳文件的路徑(相對的)
[/code]
[code]
ConfigAllowedExtensions.Add "File", ""
ConfigDeniedExtensions.Add "File", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi"
ConfigAllowedExtensions.Add "Image", "jpg|gif|jpeg|png|bmp"
ConfigDeniedExtensions.Add "Image", ""
ConfigAllowedExtensions.Add "Flash", "swf|fla"
ConfigDeniedExtensions.Add "Flash", ""
ConfigAllowedExtensions.Add "Media", "swf|fla|jpg|gif|jpeg|png|avi|mpg|mpeg|mp(1-4)|wma|wmv|wav|mid|midi|rmi|rm|ram|rmvb|mov|qt"
ConfigDeniedExtensions.Add "Media", ""
[/code]
這是4個不同的filetype類型 分別對應了 前臺編輯器的 插入鏈接 插入圖片 插入flash 插入媒體 4個功能
[code]
connecter.asp中 最後一個函數 116行
Function IsAllowedType( resourceType )
Dim oRE
Set oRE = New RegExp
oRE.IgnoreCase = True
oRE.Global = True
oRE.Pattern = "^(File|Image|Flash|Media)$" ‘這裏也是文件類型
IsAllowedType = oRE.Test( resourceType )
Set oRE = Nothing
End Function
[/code]
這裏的文件類型與上面提到的兩處文件類型是一致的要改必須許全改
快速上傳:
FCKeditor/editor/filemanager/upload/
asp/
23 ConfigIsEnabled = False
是否啓用快速上傳
27 ConfigUserFilesPath = "/UserFiles/"
如果想上傳到 /test/upload/yyymmdd/的文件夾下面
則修改爲 ConfigUserFilesPath = "/test/upload/" & year(now())& right("0"& month(now()),2)&right("0" & day(now()),2)
php與asp 不同的地方
php上傳設置
FCKeditor/editor/filemanager/browser/default/connectors/php下面
config.php
[code]
$Config['Enabled'] = true ; 啓用上傳
$Config['UserFilesPath'] = '/test/upload/' ; url顯示出來的路徑,
$Config['UserFilesAbsolutePath'] = 'e:/web/upload' ;服務器上的真實路徑,建議配置上這個。否則可能出現失去響應的情況
[/code]
相應文件類型設置:39-40行
connector.php
71行
[code]
if ( !in_array( $sResourceType, array('File','Image','Flash','Media') ) )
return ;
[/code]
表示文件類型
快速上傳FCKeditor/editor/filemanager/upload/php
config.php
[code]
$Config['Enabled'] = true ;//啓用
// Path to uploaded files relative to the document root.
$Config['UserFilesPath'] = '/test/upload/' ;這是url相對文檔根
$Config['UserFilesAbsolutePath'] = 'e:/web/upload/' ;這纔是服務器上的絕對路徑 建議與上面u那個路徑同時都配置上,如果出現了php上傳沒有反映的問題則可能是這個沒有配置。
[/code]
說明
文件上傳有兩種模式,一種是服務器文件瀏覽模式,在該模式下可以瀏覽服務器上的文件,創建新文件夾。另一種是快速上傳,在該模式下不能選擇上傳位置。
fck默認在文件瀏覽模式下文件路徑是:你配置的服務器路徑 + 文件類型 +當前文件夾 + 文件名
fck在快速上傳模式下的文件路徑是:你配置的服務器路徑+文件名
可以看出少了一個文件類型名的文件夾
所以假如我們想把所有的文件都放在 一個名爲 "upload" 的文件夾下面 那麼你需要同時修改3個地方。這三個地方分別是上文提到的有type的地方,注意之修改文件瀏覽模式下的type設置即可
本文來自:http://hi.baidu.com/goga/blog/item/9aaddbb43d09db728ad4b2da.html/cmtid/76634bed409274d8b21cb1a2