CKEditor&ckfindtor

article/2025/9/16 9:20:13

前言

之前的项目中一直使用的是FCKeditor,昨天突然有个想法:为什么不试一下新的CKEditor呢?于是花了大半天的时间去学习它的用法,现在把我的学习过程与大家分享一下。

谈起FCKeditor,相信没几个Web程序员不知道的吧。不过,官方已经停止了该产品的更新,其最新版是2.6.6,于2010年2月15日发布。

取代FCKeditor的产品叫CKEditor(Content And Knowledge Editor),与其说是对FCKeditor的升级,不如说是全新的一个产品。相比FCKeditor,其加载速度更快,功能更强大,更丰富的插件和API,更友好的界面,生成的html更标准化。我们先一睹它的风采吧。

它与FCKeditor最大的一个区别是CKEditor不集成文件上传与管理功能(乍一看到,心里瓦凉瓦凉的),这部分被独立出来放到另一个产品CKFinder中,这是一个商业授权的产品。CKEditor + CKFinder 两者结合起来才算一个完整的在线编辑器,所以我会把它们的配置放到一起,毕竟两者是缺一不可的。接下来我们看看如何在项目中使用它们吧。

(一)  下载和部署

目前CKEditor最新版为3.6.1,于2011-6-16发布。官方下载地址:http://ckeditor.com/download。

CKEditor.NET,最新版为3.6.1,于2011-6-17发布,这是CKEditor的.Net的源码项目。 官方下载地址:http://ckeditor.com/download,请选择ASP.NET版下载。

CKFinder的最新版为2.0.2.1,于2011-4-19发布。官方下载地址:http://ckfinder.com/download,请选择ASP.NET版本下载。

分别解压下载下来的这3个文件,并把解压后的ckeditor_3.6.1和ckfinder_aspnet_2.0.2.1文件夹拷贝到你的项目中(解压出来后的文件夹原本是ckeditor和ckfinder,但我更习惯把他们的版本号也加上去,方便项目后期的追踪),把“ckeditor_aspnet_3.6.1\bin\Release\CKEditor.NET.dll”和“ckfinder_aspnet_2.0.2.1\bin\Release\CKFinder.dll”这两个文件拷贝到网站根目录下的bin文件夹中,下面是部署后的目录结构图。

注意:

1. 不要拷贝ckfinder_aspnet_2.0.2.1下的_source(源代码项目)和bin文件夹,否则将导致无法成功编译你原来的项目。

2. 你可以把CKEditor和CKFinder放到你喜欢的任意目录中,然后正确配置他们的基路径(接下来就会说到),这丝毫不影响使用。

(二)  配置和使用

CKFinder的必要配置

打开/editor/ckfinder_aspnet_2.0.2.1/ config.ascx文件,完成验证逻辑(非常重要)、设置文件保存路径。

view plain
  1. public override bool CheckAuthentication()  
  2. {  
  3.     // WARNING : DO NOT simply return "true". By doing so, you are allowing  
  4.     // "anyone" to upload and list the files in your server. You must implement  
  5.     // some kind of session validation here. Even something very simple as...  
  6.     //  
  7.     //      return ( Session[ "IsAuthorized" ] != null && (bool)Session[ "IsAuthorized" ] == true );  
  8.     //  
  9.     // ... where Session[ "IsAuthorized" ] is set to "true" as soon as the  
  10. // user logs on your system.  
  11. //重视上面这段话,在用户试图管理文件前,你必须在这里验证用户是否有权限操作,  
  12. //比如检查用户是否登录了,等等。如果验证成功,返回true,  
  13. //否则返回false以拒绝此操作。  
  14. //如果你直接返回true,这将是非常危险的,任何一个人,只要知道你ckfinder的路径,  
  15. //都可以随意上传或者删除文件,这将是毁灭性的  
  16.   
  17.     //return false;  
  18.     return true;  
  19. }  
  20.   
  21. /** 
  22.  * All configuration settings must be defined here. 
  23.  */  
  24. public override void SetConfig()  
  25. {  
  26.     // Paste your license name and key here. If left blank, CKFinder will  
  27.     // be fully functional, in Demo Mode.  
  28.     LicenseName = "";  
  29.     LicenseKey = "";  
  30.   
  31.     // The base URL used to reach files in CKFinder through the browser.  
  32. BaseUrl = "/ckfinder/userfiles/";   //在这里指明你想把上传的文件放到哪里  
  33. // The phisical directory in the server where the file will end up. If  
  34. // blank, CKFinder attempts to resolve BaseUrl.  
  35. BaseDir = "";  
  36.   
  37. //后面还有代码  
  38. //...  

接下来,你可以通过以下3种方式使用CKEditor,使用哪一种取决于你的偏好和习惯。

方式1 控件加载法

这是在.Net环境下最简便的方式,对于习惯了拖控件的同志们来说,这是最好的方式,推荐使用。

1. 添加CKEditorControl控件

在Visual Studio左侧的工具箱中点击右键,在弹出的菜单中选择“选择项(I)…”①菜单,将弹出选择工具箱项窗口,点击“浏览”按钮②在你网站根目录的Bin文件夹中找到刚刚添加的CKEditor.NET.dll③,一路点确定完成。你会发现工具箱里多了一个叫“CKEditorControl”的控件,没错,那个就是我们需要的CKEditor编辑器控件。

2. 添加dll引用

右键点击你的Web项目,选择“添加引用(R)…”菜单,找到之前拷贝进来的CKEditor.NET.dll和CKFinder.dll,点击“确定”按钮完成操作,见下图。

3. 还等什么,赶快试用吧

双击该控件或直接把该控件拖放到你的aspx页面中,并配置CKEditor的基路径BasePath。

view plain
  1. <CKEditor:CKEditorControl ID="CKEditorControl1" runat="server"   
  2. BasePath="/editor/ckeditor_3.6.1/"></CKEditor:CKEditorControl>  

说明:若你的CKEditor放在根目录的ckeditor文件夹中,你无需配置BasePath属性,直接把控件拖到页面中就能正常使用,CKEditor将自动搜索该路径。CKFinder的默认基路径为根目录下的ckfinder。下面提到的基路径配置规则与此相同。

后台代码,必须创建一个CKFinder并绑定到CKEditor上,以使用文件上传与管理功能。

view plain
  1. protected void Page_Load(object sender, EventArgs e)  
  2. {  
  3.     CKFinder.FileBrowser fileBrowser = new CKFinder.FileBrowser();  
  4.     fileBrowser.BasePath = "/editor/ckfinder_aspnet_2.0.2.1/";  //设置CKFinder的基路径  
  5.     fileBrowser.SetupCKEditor(CKEditorControl1);  
  6. }  

恭喜你,你已经学会了CKEditor的使用方法,运行页面去体验一下吧。

方式2 使用官方原始的JavaScript方式加载

1. 必要的配置

打开/editor/ckeditor_3.6.1/config.js,配置CKEeditor的基路径,如下:

view plain
  1. CKEDITOR.editorConfig = function( config )  
  2. {  
  3.     // Define changes to default configuration here. For example:  
  4.     // config.language = 'fr';  
  5.     // config.uiColor = '#AADC6E';    
  6.     basePath = '/editor/ckeditor_3.6.1/';   //配置CKEditor的根路径  
  7.   
  8. };  

2. 使用

首先在页面中引入CKEditor和CKFinder的js文件。

view plain
  1. <script src="/editor/ckeditor_3.6.1/ckeditor.js" type="text/javascript"></script>  
  2. <script src="/editor/ckfinder_aspnet_2.0.2.1/ckfinder.js" type="text/javascript"></script>  

初始化代码,以下两种方式都可以完成初始化。

view plain
  1. <!--方式1-->  
  2. <textarea id="content" name="content" class="ckeditor"><%=Request.Form["content"] %></textarea>  
  3. <script type="text/javascript">  
  4.     //绑定CKFinder到当前编辑器中,第二个参数指定CKFinder的路径  
  5.     CKFinder.setupCKEditor(null, '/editor/ckfinder_aspnet_2.0.2.1/');  
  6. </script>  
  7.   
  8. <!--方式2-->  
  9. <textarea id="content" name="content"><%=Request.Form["content"] %></textarea>  
  10. <script type="text/javascript">  
  11.     //在id为content的textarea处创建一个编辑器  
  12.     var editor = CKEDITOR.replace('content');   
  13.     //绑定CKFinder到当前编辑器中,第二个参数指定CKFinder的路径  
  14.     CKFinder.setupCKEditor(editor, '/editor/ckfinder_aspnet_2.0.2.1/');   
  15. </script>  


 

聪明的你一定注意到了,第一种初始化代码并没有显式创建编辑器,textarea拥有css类名“ckeditor”而第二种没有。默认情况下,CKEditor会把页面中所有拥有css类名为“ckeditor”的textarea都创建为编辑器,你可以亲自试一下。

 

方式3 通过官方的jQuery适配器加载

首先引入必要的js

view plain
  1. <script src="/js/jquery/jquery-1.6.2.js" type="text/javascript"></script>  
  2. <script src="/editor/ckeditor_3.6.1/ckeditor.js" type="text/javascript"></script>  
  3. <!--注意 适配器js必须放在ckeditor.js后面,否则将会出错,因为适配器需要引用ckeditor.js里面定义的类-->  
  4. <script src="/editor/ckeditor_3.6.1/adapters/jquery.js" type="text/javascript"></script>  
  5. <script src="/editor/ckfinder_aspnet_2.0.2.1/ckfinder.js" type="text/javascript"></script>  

编写初始化代码

view plain
  1. <textarea id="content" name="content"><%=Request.Form["content"] %></textarea>  
  2. <script type="text/javascript">  
  3.     $(function() {  
  4.         //利用jQuery加载  
  5.         $('#content').ckeditor();  
  6.         //绑定CKFinder到当前编辑器中,第二个参数指定CKFinder的路径  
  7.         CKFinder.setupCKEditor(null, '/editor/ckfinder_aspnet_2.0.2.1/');  
  8.     });  
  9. </script>  

(三) 精简你的CKEditor

解压后的CKEditor文件夹占用空间7M多,还是挺大的,让我们把没必要的东西清理一下吧,我的Editor我做主。

_samples:里面放的是示例,删除。

_source:存放的是开发用的源文件,不需要,删除。

adapters:如果你不使用jQuery方式来初始化CKEditor(上面的第3种方式),可以删除。

images:必要的文件,保留。

plugins:存放的是插件,有一些是CKEditor必须使用的,全部保留吧。

lang:里面放的是语言文件,保留_languages.js、zh-cn.js和en.js这3个文件,其它全部删除。

themes:必要的文件,保留。

skins:存放的是皮肤文件,默认的皮肤是kama,其它两个觉得用不到的话可以直接删除。

删除CKEditor根目录下的.htaccess、CHANGES.html、ckeditor.asp、ckeditor.pack、ckeditor.php、ckeditor_basic.js、ckeditor_basic_source.js、ckeditor_php4.php、ckeditor_php5.php、ckeditor_source.js和INSTALL.html共11个文件。

以下是清理前后的对比:


(四) CKFinder版权的破解

CKFinder要商业授权才能使用的,未授权时在使用中会跳出一些版本信息,虽然不影响正常使用,但不喜欢的可以把它去掉,破解的版本为2.0.2.1,其它版本可能会不同。

注意:此方法仅供个人学习用,请不要在商业中使用!



打开CKFinder下的ckfinder.js文件,搜索“message_content”(不包括双引号),会找到以下片段:<h4 class='message_content' '></h4>,批发它 改为<h4 class='message_content' style='display:none;'></h4>,让它隐藏。

搜索“\x3c\144\x69\x76\040\143\x6c\x61\163\x73\075\x27\166\x69\x65\x77\040\x74\x6f\157\154\137\160\141\x6e\145\154\047\040\x73\164\x79\154\x65\075\047\x64\x69\163\160\x6c\141\x79\x3a\040\142\154\x6f\x63\153\x20\041\151\155\160\x6f\162\164\141\156\164\x3b\040\160\157\163\x69\x74\x69\157\x6e\x3a\040\163\164\x61\164\x69\143\x20\x21\x69\x6d\160\157\x72\x74\141\156\164\x3b\x20\x63\157\154\x6f\x72\x3a\x20\x62\x6c\141\x63\153\x20\041\x69\155\160\157\x72\164\141\x6e\x74\x3b\x20\x62\141\x63\153\147\162\x6f\165\x6e\144\055\x63\157\154\x6f\x72\072\040\x77\x68\x69\164\145\x20\041\151\x6d\x70\157\162\164\141\156\164\073\x27\x3e\x54\150\151\163\x20\151\x73\x20\x74\150\x65\x20\x44\x45\115\117\040\x76\145\162\163\151\x6f\x6e\040\x6f\x66\x20\x43\113\x46\x69\x6e\144\x65\x72\x2e\040\x50\154\145\141\x73\x65\040\166\151\163\x69\x74\040\x74\x68\x65\040\x3c\x61\x20\150\162\145\x66\075\x27\x68\164\x74\160\x3a\057\057\143\153\146\x69\156\x64\x65\x72\x2e\143\157\x6d\x27\x20\164\x61\x72\x67\x65\164\075\x27\137\142\154\141\156\153\047\x3e\103\113\106\151\x6e\x64\145\162\x20\x77\x65\142\040\x73\151\x74\145\074\x2f\141\x3e\x20\164\157\040\157\x62\x74\x61\151\x6e\x20\x61\x20\x76\x61\154\151\144\x20\x6c\151\x63\x65\x6e\163\145\x2e\074\057\144\x69\x76\076”(不包括双引号),把这一串字符改为“\x20”。

其实上面那些符号都是JavaScript的转义字符,其对应的是“<div class='view tool_panel' style='display: block !important; position: static !important; color: black !important; background-color: white !important;'>This is the DEMO version of CKFinder. Please visit the <a href='http://ckfinder.com' target='_blank'>CKFinder web site</a> to obtain a valid license.</div>”,即左下角那些文字。

后记

以上仅仅是CKEditor的基本用法,基本上能满足一般的需要。要想真正了解并用好它,还得下一番苦功夫。试用后感觉很不错,特别是官方的API文档,很详细很给力。

官方文档:http://docs.cksource.com/


http://chatgpt.dhexx.cn/article/dRmJIk6v.shtml

相关文章

在JSP里使用CKEditor和CKFinder

在JSP里使用CKEditor和CKFinder 最近在做一个新闻发布平台&#xff0c;放弃了很早的FCKEditor&#xff0c;使用CKEditor和CKFinder&#xff0c;尽管免费的CKFinder是Demo版本&#xff0c;但是功能完整&#xff0c;而且用户都是比较集中精神发新闻的人&#xff0c;不会在意这个。…

ckfinder2上传绕过漏洞

CKFinder 是国外一款非常流行的所见即所得文字编辑器,其1.4.3 asp.net版本存在任意文件上传漏洞,攻击者可以利用该漏洞上传任意文件。ckfinder2上传绕过漏洞, CKFinder在上传文件的时候,强制将文件名(不包括后缀)中点号等其他字符转为下划线_,但是在修改文件名时却没有任何…

Ckeditor5 整合Ckfinder3 防出错实战教程(二)整合篇

Ckeditor5 整合Ckfinder3 防出错实战教程&#xff08;二&#xff09;文件图片上传和管理 自从写了 Ckeditor5完全开发指南教程&#xff08;一&#xff09;后&#xff0c;很多码友都说不错&#xff0c;一直说更新呢&#xff0c;也没时间&#xff0c;慢慢忘了&#xff0c; 今天突…

思科路由器修改密码

第一步&#xff1a;重启路由器 #表示进度 &#xff0c;在60秒内切换到CLI&#xff0c;在重启之前完成ctrlc进入ROM模式&#xff08;窗口如下所示&#xff09; 第二步&#xff1a;自动重启路由器 输入 rommon1> confreg 0x2142 忽略NARAM中的配置文件 rommon2> reset 重…

没有一个绝对安全的系统 (二) 破解路由器后台密码

此教程只为分享&#xff0c;请勿用于其它用途 在学习黑客的道路&#xff0c;好难走啊&#xff0c;一堆乱七八糟的资料 还是翻墙出去学吧 有时间补一期 kali linux 破解 wifi 密码以及 使用 mac 破解wifi 的教程 破解路由器后台&#xff08;mac os&#xff09; 1. 安装 hy…

计算机网络实验如何设置无线路由器密码,怎么设置路由器密码 路由器设置密码方法【图文】...

随着互联网的不断发展&#xff0c;和智能手机的出现&#xff0c;连接电脑与手机的桥梁路由器诞生了&#xff0c;那么大家对路由器有多少了解呢?知道它是用来做什么的?其实路由器是连接因特网的一种设备&#xff0c;它可以把一些网络数据分发到智能手机上&#xff0c;让智能手…

获取路由器后台账号密码

获取路由器后台账号密码 偶然发现的路由器的漏洞 网站目录&#xff1a; 我是先分析他登陆按钮的事件 <input type"submit" name"login" class"button3" value"登录" onclick"return check();">return check(); &a…

华硕Android原始密码,华硕路由器默认密码是多少?ASUS路由器初始密码介绍

华硕路由器的默认初始密码是所有入手华硕路由器的伙伴们需要知道的&#xff0c;不知道华硕无线路由器默认密码是无法设置使用华硕路由器的&#xff0c;那么&#xff0c;华硕路由器默认密码是多少呢&#xff1f;对此&#xff0c;本文就为大家详细介绍华硕路由器初始密码&#xf…

无线路由器服务器密码忘记了怎么办,忘了路由器密码怎么进行ip设置

忘了路由器密码怎么进行ip设置 方法1 1点击屏幕右下角的网络连接的图标打开网络和共享中心。 2打开本地连接或无线网络连接。 3点击详细信息。 4里面的IPv4 默认网关 和 IPv4 DHCP 服务器 里的内容就是无线路由器的IP了 方法2 1还有一种方法也可以看到 而且很快捷。那就是利用c…

思科路由器重置密码的方法

#####重置前准备&#xff1a;通过反转线连接路由器的控口&#xff0c;保证电脑端与路由器能够正常交互。 ###第一步&#xff1a;物理重启路由器 也就是拨动路由器的电源开关 ###第二步&#xff1a;60s内在电脑端按住 Ctrlbreak/pause 进入以下窗口 第三步&#xff1a;输入…

利用CDLinux里面的水滴破解路由器密码的教程

工具: 1.CDLinux系统镜像(网上有很多,这里我提供一个我使用的:http://yunpan.cn/cFgIifL8s6zUF 访问密码 a0ef) 2.U盘一个,不需要很大。(可以使用虚拟机安装这个镜像文件,但是需要特定版本的外置无线网卡,但是如果安装在U盘就可以使用电脑自带的网卡,所以这里我讲解的…

联想计算机无线网络设置密码,联想路由器怎么设置密码

在这个互联网时代里,路由器是互联网系统中的重要组成部分,是连接因特网中局域网和广域网的设备,它可以根据信道实际的情况选择最合适的路径,那么你知道联想路由器怎么设置密码吗?下面是学习啦小编整理的一些关于联想路由器设置密码的相关资料,供你参考。 联想路由器设置密…

Router Password Kracker(路由器密码破解工具)

在我们破解出了wifi的密码,却因为路由器默认密码被改,而无法登陆路由器管理界面是不是很蛋疼。 下面给大家介绍一款路由器密码破解工具&#xff0c;Kracker。 【工具介绍】 Kracker&#xff1a;一款免费的破解软件&#xff0c;它可以用于破解路由器或调制解调器等。 一般路由器…

TPLink路由器登陆密码怎么破解

TPLink路由器登陆密码忘记了怎么办?由于路由器设置通常只是偶尔进行,因此时间长了可能就忘记了路由器登陆密码。当路由器登陆密码忘记后,我们可以采用暴力破解登陆路由器,也可以通过恢复路由器出厂设置来清除登陆密码。以下小编就为大家分享一下具体破解TPLink路由器登陆密…

无线路由器怎么改密码 修改路由器密码

时下有许多蹭网软件&#xff0c;可以轻松破解WIFI密码&#xff0c;占用我们的网络&#xff0c;而定期修改路由器密码&#xff0c;可有效防止这些蹭网行为&#xff0c;那么无线路由器怎么改密码&#xff1f;这里就教大家如何修改路由器密码&#xff0c;一起来看看。 无线路由器…

思科模拟器:cisco路由器密码恢复(密码破解)

环境&#xff1a;思科模拟器 准备一个路由器 我们如果要去密码恢复时候&#xff0c;需要去修改寄存器值&#xff0c;就是修改寄存器值让路由器不去加载以前的配置文件同理console口密码也会一起消失&#xff0c;也就说你修改完以后是所有配置都会没&#xff0c;并不是单一的密码…

华为路由器密码破解

前言 生活中存在各种密码&#xff0c;由于个人问题&#xff0c;导致密码忘记是很正常的事情。作为网络管理员需要管理的设备是比较多&#xff0c;然后密码可能还需要周期性修改&#xff0c;如何密码备份文件损坏或者丢失&#xff0c;将导致无法登陆设备&#xff0c;此时密码破解…

[已实现]暴力破解路由器管理密码

自搬新家以后&#xff0c;第一时间连上网络&#xff0c;登录路由器后台。 博主租的房子是某平台的&#xff0c;网络是由平台提供的。和上次租房不同的地方在于&#xff0c;这次路由器后台管理密码居然和给的wifi连接密码不一样了,肯定是有人改过密码了&#xff01;admin 等弱口…

使用 hydra 破解路由器密码

2019独角兽企业重金招聘Python工程师标准>>> hydra 是个网络协议暴力破解工具 ,。。支持很多协议 下面说下怎么使用其破解路由器密码 [root@fedora ~]# hydra Hydra v7.3 (c)2012 by van Hauser/THC & David Maciejak - for legal purposes only Syntax: hyd…