CKEditor学习笔记三(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一些基本常用配置。