如何集成CKFinder(1)
来源:互联网 发布:汉文化复兴 知乎 编辑:程序博客网 时间:2024/05/29 13:23
在web应用中集成CKFinder的方法基本有两种,一种是利用Javasciprt, 二是结合开发语言特性。这里介绍在jsp环境下的后一种的集成方法。
1. 在官网下载CKFinder for Java, http://cksource.com/ckfinder。解压其中的.war文件(该文件的名字一般是CKFinderJava-版本号,笔者的是2.4)。
2. 将CKFinder下WEB-INF的config.xml复制到你应用下的WEB-INF。
3. 复制CKFinder的WEB-INF下的lib目录到你应用下的WEB-INF\lib。
4. 把解压后的ckfinder放在复制到你应用下与WEB-INF目录平行。(内有lang,plugins,skins,ckfinder.html,ckfinder.js等,可删除_samples等无用的)
其中config是配置信息;lib有很多jar包,包括所需的标签。熟悉JEE开发的读者应该知道,定义了标签库文件后,只要将标签库文件放在WEB-INF路径或其子路径下,JEE的规范会自动加载它,无需配置。
5. 修改web.xml
实际上,你修改的只是ConnectorServlet设置部分。(可参考下载文件的例子配置)
<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><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>
这上面可以看出,它把config.xml做为servlet的参数加载进去。
当然,也需要对2中的config.xml进行修改。比如<enabled>true</enabled>
另外,你需要去配置文件上传到过滤器。(File Upload Filter)。这里简要解释一下为什么: CKFinder2.1引入了一个新的Flash组件来实现多文件上传,但这会在一种情况下出现Bug,即当你基于会话范围使用了自己的认证方法(重载了checkAuthentication()),使用非IE内核的浏览器上传图片时可能会报错。具体的原因是老式Flash的”Cookie Bug"。有兴趣的可以查阅更细节原因。
在服务器端你只要设置一个FileUploadFilter.
<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>
分析上面的代码,除了基本的name和class等,我们还发现两个可选的参数,用以帮助识别要被重写的认证Cookie。这两个参数名是会话Cookie的名字,在java中默认是JSESSIONID,和会话路径名,在java默认是jessionid。如果你要使用自定义的配置,并修改了服务器上会话的标识符,你就要重指定。
完成上面后,就可以用标签了。
<%@ taglib uri="http://ckfinder.com" prefix="ckfinder" %>
<ckfinder basePath="" width="" height="'/>
这里有必要解释一下 basePath,它的值也就是我们之前的ckfinder目录下的文件路径。
- 如何集成CKFinder(1)
- 如何集成CKFinder(2)
- spring mvc 集成 ckfinder
- springboto集成ckfinder的坑
- Spring Boot集成CKFinder-优化
- CKFinder(php版)与现有的CKEditor的集成(问题补充)
- CKFinder(php版)的使用,以及与现有的CKEditor的集成
- ckeditor+ckfinder 集成 实现上传下载(Image/Flash/File/Other) 有下载连接
- java中集成CKEditor和CKFinder
- liferay6.2 集成CKEditor和ckfinder
- CKFinder
- 单独刷新页面中ckfinder部分,ckfinder如何重新加载
- 配置CKEditor 3.6.3及如何去掉CKFinder 2.2.1中的版权信息
- 配置CKFinder(Java版)
- CKEditor/FCKEditor 使用-集成 CKFinder(上传文件、浏览文件)
- ASP.NET下CKEditor和CKFinder集成 配置
- web工程集成ckeditor/ckfinder实现在现编辑
- ckeditor学习笔记3——与ckfinder集成
- 开启IOS7新时代
- hdu_2063 过山车 匈牙利算法的bfs写法
- 将4字节数据二进制模式中001替换为011
- 解决EMF DanglingHREFException的问题
- 自定义basic_streambuf
- 如何集成CKFinder(1)
- 【笔面大全】卡特兰数 Catalan
- Ubuntu下远程访问MySQL数据库
- C++之自定义的output缓冲区
- poj1088
- Windows 7 虚拟串口 VSPD 支持64bit
- html 中<br>和<br/>
- 外国网站
- 为Android交叉编译busybox