ckfinder的使用及了解config.xml的配置
ckfinder的使用,根据官网向导(CKFinder_2.x/Developers_Guide)自己写的笔记
1、将ckfinder_java_2.4.3\CKFinder-Java-2.4.3\ckfinder目录放到根目录下面,WEB-INF/lib中的jar文件全部放到项目中的lib下面
2、将config.xml放到WEB-INF目录下面
3、修改config.xml文件下的配置
<enabled>true</enabled> <!--修改为true,表示开启ckfinder功能。默认是false--!>
4、 支持以下服务
Tomcat 5.5-7,Jetty 7-9,JBoss 6-7,GlassFish 3.0-4.0,Weblogic 11g-12c.
----------------- 了解config.xml配置 ----------------------
5、1)如果是购买ckfinder,需要更改config.xml
<licenseKey>put your license name here</licenseKey>
<licenseName>put your license key here</licenseName>
2)配置ckfinder处理的资源路径,上传文件存放的路径。例如:
<baseURL>/CKFinderJava/userfiles/</baseURL>
<baseURL>http://example.com/CKFinderJava/userfiles/</baseURL>
3)服务直接路径,图片上传后的位置,是物理地址的全路径而不是相对路径,最后加“/”
<baseDir>/usr/tomcat-6.0.32/webapps/CKFinderJava/userfiles/</baseDir>
<baseDir>C:\tomcat-6.0.32\webapps\CKFinderJava\userfiles\</baseDir>
注意:如果baseDir设置不写,参考baseURL的路径。但是baseURL是网页地址时,不会覆盖
6、Access Control 访问权限,使ckfinder更安全
1)在config.xml文件中添加以下语句:
<accessControls>
<accessControl>
<role>*</role> //设置用户类型
<resourceType>*</resourceType> //不同资源如images,flash,files
<folder>/</folder> //默认“/”是没有文件夹设置
<folderView>true</folderView> //以下设置true代表有效,false代表无效
<folderCreate>true</folderCreate>
<folderRename>true</folderRename>
<folderDelete>true</folderDelete>
<fileView>true</fileView>
<fileUpload>true</fileUpload>
<fileRename>true</fileRename>
<fileDelete>true</fileDelete>
</accessControl>
</accessControls>
2)在config.xml文件中配置用户角色session变量
<userRoleSessionVar>CKFinder_UserRole</userRoleSessionVar>
3)在java代码中合适的位置,比如login()方法里,添加以下代码。
设置一个用户角色名,如“admin”
HttpSession session = request.getSession(true);
session.setAttribute("CKFinder_UserRole", "admin");
4)注意:系统会在访问yoursite/ckfinder2.3.1/ckfinder.html时(包括点击下图的“浏览服务器”按钮),
检查CKFinder_UserRole的值是什么,它具有的权限是什么。如果一个人没有登录系统,而是直接访问
yoursite/ckfinder2.3.1/ckfinder.html,那么系统就会检查到CKFinder_UserRole是null,
他就看不到服务器上的文件。
7、ckfinder允许创建缩略图,使用设置的大小浏览图片
1)设置缩略图参数
<thumbs>
<enabled>true</enabled>
<url>%BASE_URL%_thumbs/</url>
<directory>%BASE_DIR%_thumbs</directory>
<directAccess>false</directAccess> //设置为true,直接从_thumbs文件夹中加载缩略图,其他目录下时不能使用
<maxHeight>100</maxHeight>
<maxWidth>100</maxWidth>
<quality>80</quality> //设置范围[0-100],可接受值是45左右,一般设置为80
</thumbs>
2)你也可以指定图片的上传大小,如果图片比设置范围大时,将会按指定的大小加载。
<imgWidth>1600</imgWidth>
<imgHeight>1200</imgHeight>
<imgQuality>80</imgQuality> //范围是0-100
8、资源类型是不同路径下,组织文件的方法,每一种路径有着不同的配置,下面是两种资源类型:
1) 内置的类型有三种files, images, and Flash objects.
在config.xml文件中已经进行了配置<type>...</type>,自己查看一下。
<types>
<type name="Flash">
<url>%BASE_URL%flash/</url> //url和directory的定义规则与baseURL和baseDir相同
<directory>%BASE_DIR%flash</directory>
<maxSize>0</maxSize> //定义上传图片的字节大小,可以使用G,M,K单位
<allowedExtensions>swf,flv</allowedExtensions> //允许上传的格式
<deniedExtensions></deniedExtensions> //不允许长传的格式
</type>
<type name="Files">...</type>
<type name="Images">...</type>
</types>
2)如果添加新的资源类型,也可以再config.xml中进行配置,例如:
<types>
<type name="MSdocs">
<url>%BASE_URL%MSdocs/</url>
<directory>%BASE_DIR%MSdocs</directory>
<maxSize>2M</maxSize>
<allowedExtensions>doc,ppt,xls</allowedExtensions>
<deniedExtensions></deniedExtensions>
</type>
</types>
9、安全问题
1)多个后缀文件读取时,不只是检查最后一个后缀名,如果设置.php文件不允许上传,而.rar文件允许上传,
则foo.php.rar文件将不会被上传,将会被重命名为foo_php.rar
<checkDoubleExtension>true</checkDoubleExtension>
2)检查是不是图片文件,不仅仅是后缀名正确,后缀名为jpeg的文本文件不能成功上传到图片。
<secureImageUploads>true</secureImageUploads>
3)允许上传的文件中包含html代码的文件类型
<htmlExtensions>html, htm, xml, js, xsl</htmlExtensions>
4)如果设置为true,在创建文件夹或者上传文件时,名字里不能包含不安全的字符 <disallowUnsafeCharacters>false</disallowUnsafeCharacters>
10、//配置编码类型
<uriEncoding>ISO-8859-1</uriEncoding>
//对用户隐藏文件夹,可以使用*和?,分别代表多个和一个类型
<hideFolders>
<folder>.svn</folder>
<folder>CVS</folder>
</hideFolders>
//对用户隐藏文件
<hideFiles>
<file>.*</file>
</hideFiles>
--------------------------
11、用Java类实现对配置文件config.xml的修改
1)在web.xml中添加ConnectorServlet,在servlet下添加配置参数
<init-param>
<param-name>configuration</param-name>
<param-value>包名.MyConfiguration类名</param-value>
</init-param>
2)编写MyConfiguration类,可以添加这些方法:init, checkAuthentication,
prepareConfigurationForRequest,and specific getter methods.
public class MyConfiguration extends Configuration {
public MyConfiguration(ServletConfig servletConfig) {
super(servletConfig);
#1、
@Override
protected Configuration createConfigurationInstance() {
return new MyConfiguration(this.servletConf);
}
}
#2、该示例是修改config.xml中的资源类型
@Override
public void init() throws Exception {
super.init();
this.baseURL = "/CKFinderJava/userfiles/";
ResourceType resourceType = this.types.get("Files");
resourceType.setAllowedExtensions(
resourceType.getAllowedExtensions().concat(",zip,7z"));
}
#3、该方法允许添加自己的检查,例子:通过测试"loggedIn"session检查用户是否被写进日志
@Override
public boolean checkAuthentication(final HttpServletRequest request) {
return request.getSession().getAttribute("loggedIn") != null;
}
#4、例子:修改xml文件中<licenseName>标签能被重写
@Override
public String getLicenseName() {
return "MyLicenseName";
}
12、web.xml中配置ConectorServlet,然后在servlet配置下添加配置Java类<init-param>configuration
1)<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>
2)配置过滤器
<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>
13、页面使用ckfinder标签
<%@ taglib uri="http://cksource.com/ckfinder" prefix="ckfinder" %>
<ckfinder:ckfinder basePath="/CKFinderJava/ckfinder/" />
ckfinder的使用及了解config.xml的配置相关推荐
- idea创建mybatis的config.xml和mapper.xml方法
1.file-setting,左上角输入template, 2.在左侧栏找到File And Code Templates 3.中间选中Files 4.点击+号,添加模板 5.输入模板名字 ...
- Cordova config.xml配置WebView全屏浏览
一.config.xml可以配置WebView默认情况下全屏 说明: 1.多数应用默认下不全屏,只是修改系统工具栏的样式. 2.目前Cordova的浏览器插件InAppBrowser,Themeabl ...
- CRM:把 isv.config.xml 按钮事件移动到 entity.onload()
大家都知道在ISV.CONFIG里可以添加按钮,然后添加按钮事件,比如下面: <Entities> <Entity name="account"> ...
- mybatis中config.xml文件的解析
config.xml文件的解析是主要是XMLConfigBuilder完成的,通过调用parseConfiguration来实现整个解析过程 public Configuration parse() ...
- android xml 删除控件,android-cordova插件rm cordova-plugin-whitelist不会更改config.xml,因此在构建时将被读取...
当我跑步 cordova plugin rm cordova-plugin-whitelist 然后运行 cordova build android 我收到以下消息: Discovered plugi ...
- 转自JIM Wang:把 isv.config.xml 按钮事件移动到 entity.onload()
把 isv.config.xml 按钮事件移动到 entity.onload() 大家都知道在ISV.CONFIG里可以添加按钮,然后添加按钮事件,比如下面: <Entities> & ...
- 如何更新Jenkins作业发布config.xml
最近,我想更新Cloudbees中的一些作业(未使用DSL定义),为每个作业添加一些属性. 好吧,我在使其工作时遇到了一些麻烦,这是我的注意事项(我使用的是Jenkins 1.651.2.1,但有可能 ...
- struts config xml详细解释
以下是一份完整的struts-config.xml文件,配置元素的说明详见注释. <?xml version="1.0" encoding="UTF-8" ...
- clickhouse配置项config.xml详解——服务器配置参数
调研学习clickhouse,上一章介绍了clickhouse的配置项users.xml,这一章介绍另一大项config.xml 从clickhouse的官网看,clickhouse的配置参数主要分了 ...
- Cordova 配置文件config.xml常用整理
一.配置WebView全屏 点击:Cordova config.xml配置WebView全屏浏览
最新文章
- matlab解符号方程组,matlab 求解符号方程组
- 互联网协议 — HTTP/3 超文本传输协议第 3 版
- ITK:多路输出不同的类型
- 安装scapy遇到的问题
- 单片机8×8点阵显示简单汉字的程序_干货 | 浅析单片机制作贪吃蛇游戏
- JDK17下载和配置及官网地址教程(新版JDK12之后,较简单)
- java解指派问题,运用Excel规划求解解决指派问题
- Maven使用本地jar包(三种方式)
- TDengine 荣获 CSDN IT 技术影响力之星 “年度开源项目” 、 “年度IT领军人物”奖项
- layui数据表格合并列
- 大学寒假这样过,过完惊艳所有人,不只是你的宿友,还有千千万万个程序员同行们!!!
- 图文介绍--光纤接口类型
- xmlhttp = new XMLHttpRequest();
- Zemax优化过程中的Rings和Arms
- git多个commitId 合并成一个
- 《春松客服大讲堂》全面解读春松客服技术栈,掌握 Java 开发开源客服系统 | Chatopera
- 美国七大外卖O2O网站平台介绍
- gem5-v21.2.0最详细的安装步骤
- C++ Mysql基本操作
- 百度鹰眼Android SDK 运行配置
热门文章
- 【技能】Zoho CRM系统无代码集成智齿客服、企业微信群机器人方法
- 主流手机CPU及机型介绍!手机CPU生产厂商介绍!高通QSD8250、MSM8255、TI OMAP 3630、nVIDIA Tegra 2介绍
- linux企鹅吉祥物的名字,让我来告诉你Linux为何选吉祥物是企鹅
- 2016年米其林指南—澳门小食篇 -吃遍澳门,就这12家!
- vue 填空题组件封装
- Mac电脑如何设置屏幕保护程序的颜色?
- php 识别lrc,自动识别LRC歌词精选.pptx
- python窗口截图快捷键_windows下实现快捷键截图小工具
- AOJ-AHU-OJ-592 神奇的叶子
- 升级macos beta_如何选择退出macOS开发人员或公开Beta版