1. 程式人生 > >CKEditor學習筆記3(CKEditor與CKFinder的Java整合)

CKEditor學習筆記3(CKEditor與CKFinder的Java整合)

下載地址CKEditor
我下載的版本ckfinder_java_2.4
解壓之後,會看到一個CKFinderJava-2.4.war檔案,直接放到Tomcat/webapps釋出目錄下,把服務開啟就自動解壓了,然後將ckfinder目錄Copy到你專案WebRoot下。
步驟一:將CKFinderJava-2.4下的jar包Copy到你的專案下,還有WEB-INF/config.xml檔案Copy到你的專案WEB-INF/下。
步驟二:修改config.xml檔案(說明:CKFinderJava/userfiles/目錄儲存檔案的目錄)
<enabled>true</enabled>
<baseURL>/CKEditorAndCKFinder/CKFinderJava/userfiles/</baseURL>
步驟三:在web.xml檔案,配置Servlet
<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檔案(當前也可以是自己編寫的js配置檔案,上一篇介紹過)
config.filebrowserBrowseUrl =  '/CKEditorAndCKFinder/ckfinder/ckfinder.html' ;  
config.filebrowserImageBrowseUrl =  '/CKEditorAndCKFinder/ckfinder/ckfinder.html?type=Images' ;  
config.filebrowserFlashBrowseUrl =  '/CKEditorAndCKFinder/ckfinder/ckfinder.html?type=Flash' ;  
config.filebrowserUploadUrl =  '/CKEditorAndCKFinder/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Files' ;  
config.filebrowserImageUploadUrl =  '/CKEditorAndCKFinder/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Images' ;  
config.filebrowserFlashUploadUrl =  '/CKEditorAndCKFinder/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Flash' ;  
config.filebrowserWindowWidth = '1000';  
config.filebrowserWindowHeight = '700';  
config.language =  "zh-cn" ;

關於檔名亂碼,圖片不能顯示問題。
解決方案一:修改Tomcat web.xml配置檔案
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="6060" protocol="HTTP/1.1" redirectPort="8443"/>
當然,該方式不合適,導致全部站點使用同樣的編碼方式(對於GET請求還存在其它問題)。
解決方案二:
修改原始碼,實現檔案重新命名
1、通過UUID.randomUUID().toString()
2、日期命名法
我建立新的專案,將CKFinder原始碼匯入,修改FileUploadCommand類的saveTemporaryFile方法,將newFileName重命令即可。
1、用壓縮軟體開啟jar包,找到修改檔案的路徑。
2、把編譯好的class檔案新增到jar包的該路徑下替換原來的檔案
3、收工!

不上程式碼了,希望大家自己能夠獨立解決哦。下一篇,介紹一下CKEditor一些基本常用配置。