Struts+CKEditor+CKFinder JAVA版配置总结

java-maven-ckfinder-2.3-jar包依赖 maven jar包依赖 com.ckfinder:ckfinder:jar:2.3 立即下载

CKEditor(FCKEditor)是一个很不错的开源在线文本编辑器,CKFinder为CKEditor提供了丰富的上传功能,在此只是总结一下在SSH环境下如何配置好这两个东东,关于一些再详细的配置步骤网上到处都是,google搜索一下就行了。

0.约定

(1)使用Eclipse建立了Dynamic Web project,已经配置好SSH(Struts+Spring+Hibernate)环境(包括Tomcat 7)

(2)以下xx代表项目名称

1.下载

使用版本如下:

CKEditor 4.1.2:http://ckeditor.com/download

CKFinder 2.3.1:http://cksource.com/ckfinder/download

以上CKEditor是免费的,CKFinder是DEMO,需要付费,但下载下来的文件时完整的,包括源文件,所以可以自行破解修改。为了支持JAVA,CKFinder可以选择JAVA版本下载,CKEditor还需要下载

CKEditor 3.6.4 for JAVA:http://download.cksource.com/CKEditor/CKEditor%20for%20Java/CKEditor%20for%20Java%203.5.3/ckeditor-java-core-3.5.3.zip

不过下载的是3.5.3版本,正常使用,不深究了。

2.简单配置

(1)解压所有文件,把里面的sample说明之类的统统删除,lang文件夹中只保留en和zh-cn,复制到项目文件夹下,CKEditor和CKFinder改名为xxedit和xxfinder把ckeditor-java-core-3.5.3和xxfinder/web-inf/lib下面的的所有包统统复制到xx/web-inf/lib,把ckfinder/meta-inf/context.xml和ckfinder/web-inf/config.xml(改名为xxfinder.xml)复制到项目中的meta-inf和web-inf的位置。如下图,红色处为项目名xx。


(2)配置xxfinder.xml(即ckfinder的config.xml)

  <enabled>true</enabled>
  <baseURL>/xx/upload/</baseURL>
(3)配置web.xml,使得struts仅拦截自己关心的目标,也支持CKFinder

  <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>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.js</url-pattern>
  </filter-mapping>
  <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/xxfinder.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>/xxfinder/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>/xxfinder/core/connector/java/connector.java
     	 </url-pattern>
	</filter-mapping>
(5)在index.jsp文件中插入如下语句(支持CKEditor以及与CKFinde的r整合,参阅http://docs.cksource.com/CKFinder_2.x/Developers_Guide/Java/CKEditor_Integration和http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Java/Integration):

<%@ taglib uri="http://ckeditor.com" prefix="ckeditor" %>
<%@ taglib uri="http://ckfinder.com" prefix="ckfinder" %>
  <!-- method要是post,否则会有乱码出现 -->
  <form action="index.jsp" method="post">
    <p>
      <label for="editor1">Editor 1:</label>
      <textarea cols="80" id="editor1" name="editor1" rows="10"></textarea>
    </p>
    <p>
      <input type="submit" value="保存" />
    </p>
  </form>
  <!-- 以下顺序不能颠倒 -->
  <ckfinder:setupCKEditor editor="editor1" basePath=/xx/xxfinder/" />
  <ckeditor:replace replace="editor1" basePath=/xx/xxeditor/" />
3.深入分析

2中叙述的大部分和网上介绍的类似,接下来又更进一步修改,碰到了一些问题,逐步加以解决。

(1)CKEditor修改

ckeditor.js修改文件名后,需要相应修改其文件中的ckeditor字段(注意需要大小写匹配),还需要修改ckeditor-java-core-3.5.3中的TagHelper.createCKEditorIncJS。

(2)CKFinder修改

去掉CKFinder的版权信息和Help

需要修改ckfinder.js中

1)

p="\074\144\x69\x76\040\143\x6c\141\163\163\x3d\047\x76\151\145\167\x20\164\x6f\157\154\137\x70\x61\x6e\145\x6c\047\x20\x73\x74\171\154\145\x3d\x27\160\141\x64\x64\x69\156\147\x3a\062\160\x78\073\144\x69\163\x70\154\141\171\072\142\154\157\x63\x6b\x20\041\151\155\x70\157\162\164\x61\x6e\164\x3b\160\157\163\151\x74\x69\157\156\072\163\164\x61\x74\151\143\x20\041\151\x6d\160\x6f\x72\x74\x61\156\x74\073\143\x6f\x6c\x6f\x72\072\142\x6c\141\x63\153\040\x21\x69\x6d\x70\x6f\x72\164\x61\156\164\073\x62\141\143\x6b\x67\x72\157\x75\x6e\144\x2d\143\157\x6c\x6f\162\072\167\150\151\164\145\040\041\151\155\x70\157\162\164\x61\156\164\x3b\047\076",q="\x3c\057\144\151\x76\x3e"
后面的 r=p+"版权信息可以修改"+q,s=p+"删除其中内容"。

2)找到'Upload','Refresh','Settings','Maximize','Help'改成到'Upload','Refresh','Settings','Maximize',''

(3)CKFinder中的Java版源文件修改

上传中文文件会出现乱码,可以多种处理方法,这里简单的修改一下源代码,捕获上传文件名并且修改为以日期时间的文件名,代码如下:

FileUploadCommand.java

import java.util.Date;
import java.text.SimpleDateFormat;
……
  private String getFinalFileName(final String path, final String name) {
//  File file = new File(path, name);
//  int number = 0;
//
//  String nameWithoutExtension = FileUtils.getFileNameWithoutExtension(name, false);
//  Pattern p = Pattern.compile("^(AUX|COM\\d|CLOCK\\$|CON|NUL|PRN|LPT\\d)$", Pattern.CASE_INSENSITIVE);
//  Matcher m = p.matcher(nameWithoutExtension);
//  boolean protectedName = m.find() ? true : false;
//  while (true) {
//    if (file.exists() || protectedName) {
//      number++;
//      StringBuilder sb = new StringBuilder();
//      sb.append(FileUtils.getFileNameWithoutExtension(name, false));
//      sb.append("(" + number + ").");
//      sb.append(FileUtils.getFileExtension(name, false));
//      this.newFileName = sb.toString();
//      file = new File(path, this.newFileName);
//      this.errorCode =
//        Constants.Errors.CKFINDER_CONNECTOR_ERROR_UPLOADED_FILE_RENAMED;
//      protectedName = false;
//    } else {
        return this.newFileName;
//    }
//  } 
    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
    this.newFileName = sdf.format(date)+"." + FileUtils.getFileExtension(name);
  }
在调试时候,还会出现报错,这里修改如下:

ThumbnailCommand.java

    response.addHeader("Content-Disposition", "attachment; filename='" + this.fileName + "'");//反斜杠变成单引号
(4)maven编译打包CKFinder,mvn package

4.方向

CKEditor和CKFinder有许多参数固化,不利于日后扩展和集成部署,需要进一步整合,以有利于项目的集成。

参考:

[1] http://www.cnblogs.com/yuepeng/archive/2013/04/01/2992097.html

[2] http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Java/Integration

[3] http://docs.ckeditor.com/#!/guide/dev_installation

com.ckfinder com.ckfinder.apache-ant-zip、com.ckfinder.ckfinder、com.ckfinder.ckfinderplugin-fileeditor、com.ckfinder.ckfinderplugin-imageresize 立即下载

相关推荐

ckfinder-2.3以及依赖

ckfinder-2.3以及依赖ckfinder-2.3以及依赖ckfinder-2.3以及依赖

maven 添加jar包到本地仓库

使用Maven管理工程时,有些架包在maven仓库中找不到,而自己又没有搭建maven仓库的情况下,可以将jar下载下来,再通过命令指定到本地仓库中。 比如CKFinderPlugin-FileEditor-2.3.jar的架包在maven仓库中找不到,可以使用下面方式导入到本地仓库中。 1、在网上下载这个jar包到本地,http://www.java2s.com/Code/Jar/c

zhangfeng2124的专栏 4040

maven 缺少CKFinderPlugin-FileEditor-2.3/2.6 jar包

maven 缺少CKFinderPlugin-FileEditor-2.3/2.6 jar包CKFinderPlugin-FileEditor-2.3.jar的架包在maven仓库中找不到,可以使用下面方式导入到本地仓库中。 1、在网上下载这个jar包到本地,http://www.java2s.com/Code/Jar/c/DownloadCKFinderPluginFileEditor23jar.htm 2、cmd进入命令窗口,目录切换到CKFinderPlugin-FileEditor-2.3.jar文件下载后的路径 3、执行命令: mvn install:install-file -Dfile=CKFinderPlugin-FileEditor-2.3.jar -DgroupId=com.ckfinder -DartifactId=CKFinderPlugin-FileEditor -Dversion=2.3 -Dpackaging=jar 4、执行成功后,命令窗口会提示 BUILD SUCCESS 5、在maven配置文件中配置:

ckedit3.6.4+ckfinder2.3 学习笔记1(java)

第一步:下载ckeditor和ckfinder ckeditor下载地址:http://ckeditor.com/download/ 3.6.4版本 ckfinder下载地址:http://ckfinder.com/download/ 2.3版本 注意选择java版本的下载 。下载后的文件名为:ckeditor-java-3.6.4.zip 和ckfinder_java_2

lhpaiti的专栏 1343

CKFinder-2.3

jar包 --------------------------------CKFinder-2.3

ckfinder2.3.jar

ckfinder整套下载。里面包含 了所需要的jar包,maven下载不到这个工具类。实力下载

ckeditor + ckfinder 404 处理

最近网站中用到了图文混排的功能,按照网上步骤配置好了后,始终不能正常使用,各种调试,最后发现了问题所在。 根据网上教程配置好ckeditor + ckfinder后,如果点击浏览服务器还是出现404,检查ckfinder-jar包有没有打包到target的lib下,我遇到的情况是ckfinder-jar没有用maven依赖,部署的时候jar包没有打包到target。 其...

天空之城的博客 1129

LPDDR5X内存技术解析:性能提升与优化策略

内存技术在现代计算系统中扮演着核心角色,其性能直接影响整体系统效率。LPDDR5X作为JEDEC最新标准,通过提升数据传输率至8533Mbps、优化能效比15%以上,并扩展突发长度至32字节,显著提升了移动设备的处理能力。这些改进特别适用于5G通信、AI加速(如昇腾芯片)及8K视频处理等高带宽需求场景。技术原理上,LPDDR5X引入了动态电压频率调整(DVFS)和可编程突发长度等创新机制,有效降低了实际应用中的延迟。在工程实践中,合理的PCB布局和信号完整性验证是确保高速稳定运行的关键。随着AI和8K应用的

weixin_29190169的博客 398

SSH下整合CKEditor+CKFinder问题

转自:http://hunanpengdake.iteye.com/blog/1633814 SSH下整合CKEditor+CKFinder问题 博客分类:   常用后台框架 strutsckEditorckfinerstruts2  [color=darkblue]文章转自:http://sky-yangwang.iteye.com/blog/1489925 当然,我也...

secondsyy的博客 168

2023 年全国网络安全行业职业技能大赛-电子数据取证分析师-决赛WP_2023网络安全行业赛取证

数据库取证工具里面可以恢复删除掉的数据带红叉的就说删除过的,game库下面announcement_detail表里面update_time字段使用sql语句时间戳最大为1513243355转换时间为2017-12-14 17:22:35。

2401_89791684的博客 2092

Spring AI 项目实战(五):Spring Boot + AI + DeepSeek + Redis 实现聊天应用上下文记忆功能(附完整源码)

本文介绍了如何基于Spring Boot 3.2、Spring AI 1.0.0-M4、DeepSeek API和Redis构建具备上下文记忆功能的智能聊天应用。项目采用现代化技术栈,包括Java 17、Maven、Lombok等,实现了智能对话、会话管理、异常处理等核心功能。文章详细讲解了环境搭建、配置管理(含Redis和AI服务集成)、核心组件设计(如消息实体、控制器和服务层实现),以及完整的项目结构。该项目提供了美观的Web界面和REST API,支持对话上下文存储(通过Redis实现)和系统监控,可

博客 829

ssh+ckeditor

1,ckeditor: 1),http://ckeditor.com/download  CKEditor for Java ;---3.6.2下载;---ckeditor-java-3.6.2.war使用Tomcat分发包;---得到ckeditor-java-3.6.2文件内容; 2),复制ckeditor文件夹到项目web根路径下; 3),复制ckeditor-java...

iteye_1701的博客 195

Mastercam软件二次开发:使用C#进行Mastercam二次开发

C#(发音为“C Sharp”)是一种现代、面向对象的编程语言,由微软开发,首次发布于2000年。它结合了C和C++的强大功能,同时引入了Java的垃圾回收机制,使得C#在开发效率和运行性能之间找到了一个良好的平衡点。C#的设计目标是提高开发者的生产力,它支持多种编程范式,包括面向对象、泛型、委托和事件等,这使得它成为开发Windows应用程序、Web应用程序、游戏(尤其是使用Unity引擎)和企业级应用的理想选择。

kkchenjj的博客 2214

CKEditor开放自带上传图片功能-->java/jsp方向

最近公司项目要求使用一个在线编辑器,之前只用过FCK的,,然后觉得FCK的界面不好看,所以换了一个,它的后续版本的CKEditor, 不得不说 CKEditor使用起来要方便的多....使用方法就不在赘述.. ps:本次使用的是java版的CKEditor3.5.3, 而不是纯javascritp.. 主要是在使用的时候遇到了上传图片的问题..CKEditor默认在jsp中是没有开放上传

miketom155的专栏 2万+

影楼精修-肤色统一算法解析

本文介绍了影楼精修中肤色统一算法的实现方案,并以像素蛋糕软件为例进行详细分析。肤色统一旨在通过调整人像照片中皮肤区域的颜色,使其看起来更加均匀一致。像素蛋糕软件提供了AI肤色统一和传统肤色统一两种功能,分别适用于不同需求。传统肤色统一算法通过皮肤分割、人脸检测、亮度统一和颜色统一等步骤,实现了对皮肤区域的精细调整。文章还提供了亮度统一的核心代码,并对比了传统算法与AI算法的效果,指出AI算法在自然度和亮度矫正方面表现更优。整体而言,本文为影楼精修中的肤色统一提供了实用的技术参考。

Trent1985的专栏 2068

备战2025数学建模国赛(算法46):多目标优化

本篇博客将深入浅出地介绍多目标优化的核心概念、主流算法,并重点结合一个数学建模竞赛的经典案例,提供完整的Python代码实现,助你在未来的竞赛中游刃有余。它通过寻找帕累托最优解集,完美地诠释了“鱼与熊掌不可兼得”的权衡思想,为最终决策提供科学依据。这些问题都包含多个相互冲突的目标,传统的单目标优化方法(如梯度下降、单纯形法)对此无能为力,因为它们无法同时优化多个目标。在数学建模竞赛中,我们面临的绝大多数问题都不是单一的“最好”,而是充满权衡与妥协的“最优”。记住,成功的建模不仅在于解出问题,更在于清晰地。

YOLO 285

【学习笔记】Struts2整合CKeditor插件

一、配置环境    环境:eclipse-oxygen,Tomcat9,jdk1.8,struts-2.3.34,ckeditor_4.9.2_full二、创建项目    1.新建Dynamic Web Project    2.导入struts2的相关jar包    3.配置web.xml &lt;filter&gt; &lt;filter-name&gt;struts2&lt;/filter...

m0_37970877的博客 403

SAP-ABAP:接口多继承与复合接口设计:复杂业务场景下的能力组合实现方案

本文介绍了ABAP中通过接口多继承与复合接口设计实现能力组合的方案。文章首先辨析了类实现多个接口与接口继承接口的核心概念,指出ABAP虽不支持类多继承,但可通过这两种机制灵活组合能力。随后详细讲解了类实现多个接口的语法规则与三种调用方式,并给出了五个基础能力接口的设计示例(日志记录、权限校验、数据导出、消息通知、格式转换)。作者通过对比单继承与接口多重实现的差异,强调后者在解耦和扩展性上的优势,为复杂业务场景下的能力组合提供了实用解决方案。

baidu_35680696的博客 246

Eclipse下配置CKEditor3.5.3+CKFinder2.0.2

FCKEditor作为一款强大的页面编辑器已经被CKEditor取代,但是新版的CKEditor不再支持图片和文件的上传功能,需要依赖Ajax文件管理器CKFinder来实现。不过CKFinder是一款付费软件,咱们还是使用破解的吧。CKEditor for Java 最新版本是3.5.3。配置CKEditor和CKFinder分为三步进行,首先配置CKEditor,然后配置CKFinder,最...

yuli001123的专栏 358

学 Simulink—— 基于高频方波电压注入的表贴式永磁电机无感控制仿真

本文手把手教授基于Simulink的高频方波电压注入法实现表贴式永磁同步电机(SPMSM)无传感器控制。针对表贴式电机微弱凸极特性(Lq/Ld≈1.05-1.15),详解方波注入相比正弦注入的优势:通过5kHz方波(PWM频率半值)集中能量提升信噪比,并采用相邻周期电流直接相减的零延迟分离技术。系统架构包含高频注入器、无滤波器信号分离模块、锁相环观测器和磁饱和极性辨识等关键环节,提供参数设置经验(如注入幅值10-15%Vdc)和典型性能指标(位置误差<0.2rad)。特别强调工程实现要点:PWM同步时

xiaoheshang_123的博客 168

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ckedit+ckfinder整合于struts2框架 ,完成图片上传管理

上个项目用过的知识点总计: 一.需要的资源: 用到的网站,文件自己下载:a) ckeditor_3.6.2 (解压)b) ckeditor-java-3.6.2 (解压)c) ckfinder_java_2.1 (解压) 推荐到官网下载最新版本 :http://ckeditor.com/download二. 执行步骤: 1. MyEclipse新建 Web Project : CKEd...

xiebin_2011的博客 152

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

电力项目十--整合文本编辑器

CKEditor是新一代的FCKeditor,是一个重新开发的版本。CKEditor是全球最优秀的网页在线文字编辑器之一 Ckediter不支持文件上传,配合CkFinder插件使用 1.导入jar包,将CKFinder中的类放入src下 首先关闭eclipse的validate功能: 然后去掉项目的校验    修改配置文件:config.xml ...

weixin_30344795的博客 154

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

CKEditor、CKfinder与Struts2整合

1. 下载好ckeditor和ckfinder插件。地址:http://ckeditor.com/download 和http://ckfinder.com/download   2. 解压ckeditor和ckfinder,把ckeditor和ckfinder放在同一个文件夹里面,如下图    3. 修改ckeditor中的配置(ckeditor文件夹中的confi...

yang 178

struts2整合CKEditor和CKFinder实现上传

CKEditor+CKFinder是可以基于servlet的 实现与Struts2的整合,整合的过程确实easy.不过实现之后,图片上传不上去,上传之后显示“文件不存在”,然后在网上找了一些资料,经过总结最终实现了这个功能。此问题的原因就是struts2的拦截器,在web.xml中,可以清楚的看到:         struts2        /*    上面的配置,struts2会

云淡风轻的博客 1万+
上一篇: 2008和2009年上半年关于位示图的答案问题
下一篇: Redmine安装后的SVN问题
backzero
博客等级 码龄15年 3粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值