首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

关于CKEditor+CKFinder调整实现上传和浏览

2013-11-05 
关于CKEditor+CKFinder整合实现上传和浏览最近在做一个个人小博客,想要实现发表博文时候插入图片的效果,于

关于CKEditor+CKFinder整合实现上传和浏览
最近在做一个个人小博客,想要实现发表博文时候插入图片的效果,于是在网上浏览有什么好的插件编辑器,就看到了“kec”,哈哈。。
于是。。我从早上9点多。。一直捣鼓到刚才才结束,头都弄大了。。最后总结一下一些经验。。免的跟我一样,想死的心都有了。。

一、 下载源文件:
CKEditer4.2 和 CKEditer 3.6.4 for java : http://ckeditor.com/download
CKFinder2.4 : http://cksource.com/ckfinder/download

由于我有强迫症不想用旧的版本,所以用了最新的4.2,估计也是这个原因弄的我头大。

二、解压三个压缩包:
1、复制ckeditor和ckfinder(是ckfinder_java_2.4解压出来的ckfinder目录下的CKFinderJava.war再解压出来的CKFinderJava文件夹下的ckfinder,有点拗口-0-)到web项目下的WebRoot目录下。
2、复制ckeditor-java-core-3.5.3文件夹的ckeditor-java-core-3.5.3.jar包和CKFinderJava(刚刚那拗口的地方)下WEB-INF的config.xml以及lib所有包到项目中(config.xml放到web项目的WEB-INF下)


三、修改配置文件[/size]
1、config.xml
修改两个地方

<config><enabled>true</enabled><!--  默认false就是不给上传--> <baseDir></baseDir><baseURL>/FCKEditor/upload/userfiles/</baseURL> <!-- 自己项目路径-->


2、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>2</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>  


3、修改ckeditor下面的config.js

CKEDITOR.editorConfig = function( config ) {// Define changes to default configuration here.// For the complete reference:// http://docs.ckeditor.com/#!/api/CKEDITOR.config config.filebrowserBrowseUrl = 'FCKEditor/ckfinder/ckfinder.html';  config.filebrowserImageBrowseUrl = 'FCKEditor/ckfinder/ckfinder.html?type=Images';  config.filebrowserFlashBrowseUrl = 'FCKEditor/ckfinder/ckfinder.html?type=Flash';  config.filebrowserUploadUrl = 'FCKEditor/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Files';  config.filebrowserImageUploadUrl = 'FCKEditor/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Images';  config.filebrowserFlashUploadUrl = 'FCKEditor/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Flash' ; config.filebrowserWindowWidth = '1000';   config.filebrowserWindowHeight = '700';  config.language = "zh-cn";//预览区域显示内容// The toolbar groups arrangement, optimized for two toolbar rows.config.toolbarGroups = [{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },{ name: 'editing',     groups: [ 'find', 'selection', 'spellchecker' ] },{ name: 'links' },{ name: 'insert' },{ name: 'forms' },{ name: 'tools' },{ name: 'document',   groups: [ 'mode', 'document', 'doctools' ] },{ name: 'others' },'/',{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },{ name: 'paragraph',   groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },{ name: 'styles' },{ name: 'colors' },{ name: 'about' }];// Remove some buttons, provided by the standard plugins, which we don't// need to have in the Standard(s) toolbar. config.removeButtons = 'Underline,Subscript,Superscript';// Se the most common block elements. config.format_tags = 'p;h1;h2;h3;pre';// Make dialogs simpler. config.removeDialogTabs = 'image:advanced;link:advanced';  };


四、jsp文件:
1、标签:
<%@ taglib uri="http://ckeditor.com" prefix="ckeditor"%><%@ taglib uri="http://cksource.com/ckfinder" prefix="ckf" %>


<head></head><%Map<String, String> attr = new HashMap<String, String>();attr.put("rows", "8");attr.put("cols", "50");CKEditorConfig config2 = new CKEditorConfig();config2.addConfigValue("width", "800");config2.addConfigValue("toolbar", "Basic");%><body><textarea id="editor1" name="editor1" rows="5" cols="5"></textarea><ckf:setupCKEditor editor="editor1" basePath="/FCKEditor/ckfinder/" /><ckeditor:replace replace="editor1" basePath="/FCKEditor/ckeditor/"></ckeditor:replace></body>

这里是第一个弄的我头大的,<ckeditor:replace>标签要放在<ckf:setupCKEditor>下,否者在你上传或者浏览文件就会找不到路径。。。我恨。。
第二个就是如果你发现你能打开上传界面了,但是发现上传的时候没反应,那么你就可能是在struts2环境下的web.xml配置的其他过滤器跟struts2过滤器有冲突,可以把web.xml下struts2节点内容改为
 <filter>  <filter-name>struts2</filter-name>  <filter-class>  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  </filter-class>  </filter>  <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>*.action</url-pattern>  </filter-mapping>  <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>*.jsp</url-pattern>  </filter-mapping>



好了。大概就这样了。。不明白可以留言啊。。语言组织不好,凑合看哈

热点排行