看大家要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设置即可
|
=====================================================================
1,将ckeditor解压打开,打开_Samples,将ckeditor文件夹拷贝项目中的根目录下,把bin放在根目录下
2,将ckfinder解压,ckfinder文件夹拷贝项目中的根目录下,把bin放在根目录下,把_sample,_source,help文件夹删除掉,(注:没有用)
3,在ckeditor文件下找到config.js 打开,找到
在CKEDITOR.editorCongig=function(config)
{
//填写以下内容,图片,flash路径
config.uiColor = '#F7F8F9'
config.scayt_autoStartup = false
config.language = 'zh-cn'; //中文
config.filebrowserBrowseUrl = 'ckfinder/ckfinder.html';
config.filebrowserImageBrowseUrl = 'ckfinder/ckfinder.html?Type=Images';
config.filebrowserFlashBrowseUrl = 'ckfinder/ckfinder.html?Type=Flash';
config.filebrowserUploadUrl = 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Files';
config.filebrowserImageUploadUrl = 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Images';
config.filebrowserFlashUploadUrl = 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Flash';
};
4,在ckfinder文件下找到config.ascx文件,打开
1)把public overrider bool ChekcAuthentication(){return false;改为:return true;}
2)public overrider void SetConfig(){BaseUrl = "~/ckfinder/userfiles/";}
5,在页面中head标签内写入:
<script type="text/javascript" src="ckeditor/ckeditor.js" ></script>
<script type="text/javascript" src="ckfinder/ckfinder.js"></script>
如果有母版页,在母版页中写
--注:单纯的配置,6,7可以不要,但是一旦要入数据库中,就要配置6.7步骤
6,在Default.aspx页面中,写入<%@Page ValidateRequest="false"%>
7,在web.config文件中,在system.web下写 <httpRuntime requestValidationMode="2.0"/>
8,在Default.aspx页面中添加<asp:TextBox ID="txtcontent" runat="server" TextMode="MultiLine" Height="503px" Width="100%" class="ckeditor" ></asp:TextBox>
<script type="text/javascript">
CKEDITOR.replace('<%= txtcontent.ClientID %>', { skin: 'kama' });
</script>(用ckfinder文件下skins文件下kama文件下的,skin.js,样式)