先介紹下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;
最后來張圖結束

關於相關用到的源碼,請點擊下載
