CKEditor3.6.2與CKFinder2.1整合(java版本)


先介紹下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 (解壓)

download.cksource.com/CKEditor/CKEditor%20for%20Java/CKEditor%20for%20Java%203.6.2/ckeditor-java-3.6.2.war

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;  

最后來張圖結束

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

  

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM