先介绍下ckeditor的单独配置,在介绍下eidtor与finder的整合
一、CKEditor的使用
1.下载地址 http://ckeditor.com/download
2.将整个文件目录拷贝到Webroot目录下
3.使用:
3.1 js版本
<!-- 引入ckeditor js -->
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<script type="text/javascript">
window.onload = function()
{
CKEDITOR.replace( 'editor1' );
};
</script>
<textarea id="editor1" name="editor1"></textarea>
3.2java版本
下载相关的Jar包 点击下载,将ckeditor-java-core-3.5.3.jar放在web/lib目录下
删除ckeditor_php4.php和ckeditor_php5.php
<%@ taglib uri="http://ckeditor.com" prefix="ckeditor" %>
<textarea cols="80" id="editor1" name="editor1" rows="10"></textarea>
</p>
<ckeditor:replace replace="editor1" basePath="ckeditor/" />
二、CKEditor整合CKFinder
建议不要选用最新的版本,否则破解的话,会存在比较大的问题。
一.资源下载
a) ckeditor_3.6.2 (解压)
download.cksource.com/CKEditor/CKEditor/CKEditor%203.6.2/ckeditor_3.6.2.zip
b) ckeditor-java-3.6.2 (解压)
c) ckfinder_java_2.1 (解压)
download.cksource.com/CKFinder/CKFinder%20for%20Java/2.1/ckfinder_java_2.1.zip
二.步骤
1. MyEclipse新建 Web Project : CKEditor_Finder
2. 复制以下文件夹到WebRoot 下面:
ckfinder_java_2.1\ckfinder\ CKFinderJava \ckfinder
注意:CKFinder 加粗的是 war 包解压后的文件夹的名称
ckeditor_3.6.2/ckeditor
3. 复制 CKFinder配置文件 到WEB-INF 下面:
ckfinder_java_2.1\ckfinder\CKFinderJava\WEB-INF\config.xml
4. 复制下面文件夹下面所有jar 文件到 WEB-INf/lib 下面:
ckfinder_java_2.1\ckfinder\CKFinderJava\WEB-INF\lib
ckeditor-java-3.6.2\WEB-INF\lib
三. 下面删除无用的文件
首先是ckeditor 下面的文件:
_sample,_source, CHANGES.html, ckeditor_php4.php , ckeditor_php5.php,
ckeditor.asp, ckeditor.pack, INSTALL.html, LICENSE.html
然后是ckfinder 下面的文件:
_samples, help, changelog.txt, install.txt, license.txt, translation.txt
四.修改config.xml
<enabled>true</enabled>
<baseDir></baseDir>
<baseURL>/CKEditor_Finder/userfiles/</baseURL>
ps:enabled 节点修改成true,baseURL节点中的CKEditor_Finder改成自己的工程
五.修改web.xml
<servlet>
<servlet-name>ConnectorServlet</servlet-name>
<servlet-class>
com.ckfinder.connector.ConnectorServlet
</servlet-class>
<init-param>
<param-name>XMLConfig</param-name>
<param-value>/WEB-INF/config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ConnectorServlet</servlet-name>
<url-pattern>
/ckfinder/core/connector/java/connector.java
</url-pattern>
</servlet-mapping>
<filter>
<filter-name>FileUploadFilter</filter-name>
<filter-class>
com.ckfinder.connector.FileUploadFilter
</filter-class>
<init-param>
<param-name>sessionCookieName</param-name>
<param-value>JSESSIONID</param-value>
</init-param>
<init-param>
<param-name>sessionParameterName</param-name>
<param-value>jsessionid</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FileUploadFilter</filter-name>
<url-pattern>
/ckfinder/core/connector/java/connector.java
</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
六、修改ckeditor/config.js
CKEDITOR.editorConfig = function (config) {
config.filebrowserBrowseUrl = "/CKEditor_Finder/ckfinder/ckfinder.html";
config.filebrowserImageBrowseUrl = "/CKEditor_Finder/ckfinder/ckfinder.html?type=Images";
config.filebrowserFlashBrowseUrl = "/CKEditor_Finder/ckfinder/ckfinder.html?type=Flash";
config.filebrowserUploadUrl = "/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Files";
config.filebrowserImageUploadUrl = "/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Images";
config.filebrowserFlashUploadUrl = "/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Flash";
config.filebrowserWindowWidth = "1000";
config.filebrowserWindowHeight = "700";
config.language = "zh-cn";
};
这里需要注意的是
CKEditor_Finder 是自己创建的工程名
七.展示
<%@page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="http://ckfinder.com" prefix="ckfinder"%>
<%@taglib uri="http://ckeditor.com" prefix="ckeditor"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>首页</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<form action="getContent" method="get">
<textarea cols="80" id="editor1" name="editor1" rows="10"></textarea>
<input type="submit" value="Submit" />
</form>
<ckfinder:setupCKEditor basePath="/CKEditor_Finder/ckfinder/"
editor="editor1" />
<ckeditor:replace replace="editor1"
basePath="/CKEditor_Finder/ckeditor/" />
</body>
</html>
八.关于异常
比如tomcat的
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding ="UTF-8"/>
还有一个隐蔽的错误就是
getTextContent()Ljava/lang/String;
此异常是因为jdk1.5以上的版本与tomcat\common\endorsed下的xml-apis.jar的类发生冲突,解决办法如下:1,将common\endorsed下的xml-apis.jar移出或删掉. (已测试过)
2. 用xalan系列jar包替换原来的xercesImpl.jar和xml-apis.jar。
xalan系列jar包:serializer.jar、xalan.jar、xercesImpl.jar和xml-apis.jar。(网上留传的)
九.破解
1.修改图片主界面的字符(即<h4>标签)对应的内容
return a.bF.length > 0 && A.indexOf(a.bF.substr(0, 9)) != -1 改为return false;
2.修改图片上传后出现的字符
/*if (!S && (!p || a.bs.indexOf(p) % 8 < 4)) {
P.mj = J;
S = 1;
}
if ((P.eu && !T || S) && P.mj) { Q.addClass('files_message'); this.tools.of().setHtml(P.mj);
}*/
3.修改左下角的字符
/*if (!B)this.dV().getChild(0).appendHtml(y || z || w != 4 ? r: s+ "\074\x62\x3e"+i.htmlEncode(a.ed)+"\074\057\x62\076\074\x2f\x64\151\x76\x3e");*/
需要注意的是查找上述修改的代码,只能通过指定的字符去查找,而且要考虑到字符间的空格
4.修改上传文件名
在FileUploadCommand.java中有个方法validateUploadItem(final FileItem item, final String path)
//源代码 //this.newFileName = this.fileName; //修改源代码 String sExtentsion = FileUtils.getFileExtension(this.fileName); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); this.newFileName = format.format(new Date()) + "." + sExtentsion;
最后来张图结束

关于相关用到的源码,请点击下载