CKFinder 自定义文件路径扩展ConfigurationPathBuilder

打开config.xml当中可以看到如下配置

<basePathBuilderImpl>com.ckfinder.connector.configuration.ConfigurationPathBuilder</basePathBuilderImpl>

打开这个类的源代码

/*
* CKFinder
* ========
* http://cksource.com/ckfinder
* Copyright (C) 2007-2014, CKSource - Frederico Knabben. All rights reserved.
*
* The software, this file and its contents are subject to the CKFinder
* License. Please read the license.txt file before using, installing, copying,
* modifying or distribute this file or part of its contents. The contents of
* this file is part of the Source Code of CKFinder.
*/
package com.ckfinder.connector.configuration; import javax.servlet.http.HttpServletRequest; import com.ckfinder.connector.utils.PathUtils; /**
* Path builder that creates default values of baseDir and baseURL.
*/
public class ConfigurationPathBuilder extends DefaultPathBuilder { /**
* Gets configuration value of baseUrl. When config value is not set, then
* return default value.
*
* @param request request
* @return default baseDir value
*/
@Override
public String getBaseUrl(final HttpServletRequest request) {
String baseURL = null;
try {
IConfiguration conf = ConfigurationFactory.getInstace().getConfiguration();
baseURL = conf.getBaseURL();
} catch (Exception e) {
baseURL = null;
}
if (baseURL == null || baseURL.equals("")) {
baseURL = super.getBaseUrl(request);
} return PathUtils.addSlashToBeginning(PathUtils.addSlashToEnd(baseURL));
} /**
* Gets configuration value of baseDir. When config value is not set, then
* return default value.
*
* @param request request
* @return default baseDir value
*/
@Override
public String getBaseDir(final HttpServletRequest request) {
String baseDir = null;
try {
IConfiguration conf = ConfigurationFactory.getInstace().getConfiguration();
baseDir = conf.getBaseDir();
} catch (Exception e) {
baseDir = null;
}
if (baseDir == null || baseDir.equals("")) {
return super.getBaseDir(request);
} else {
return baseDir;
}
}
}

一共俩个方法,一个是获取资源URL的,一个是获取服务器端文件路径的,所以我们复写这俩个方法实现我们自己的逻辑就可以了。

public class MyConfigurationPathBuilder extends ConfigurationPathBuilder {

    private String getCustomPath(HttpServletRequest request) {
return request.getSession().getAttribute("bathPath").toString();
//return "EP/";
} /**
* Gets configuration value of baseUrl. When config value is not set, then
* return default value.
*
* @param request request
* @return default baseDir value
*/
@Override
public String getBaseUrl(final HttpServletRequest request) {
return super.getBaseUrl(request)+ getCustomPath(request);
} /**
* Gets configuration value of baseDir. When config value is not set, then
* return default value.
*
* @param request request
* @return default baseDir value
*/
@Override
public String getBaseDir(final HttpServletRequest request) {
return super.getBaseDir(request) + getCustomPath(request);
}
}

CKFinder 自定义文件路径扩展ConfigurationPathBuilder的更多相关文章

  1. RocketMQ 自定义文件路径

    一 .1. 修改store路径2. 修改logs路径3. 修改rmq_bk_gc.log路径4. 修改rmq_srv_gc.log路径二 .1. 获取正确的rocketmq 源码2. 地址:https ...

  2. C# 截取带路径的文件名字,扩展名,等等 的几种方法

    C#对磁盘IO操作的时候,经常会用到这些,路径,文件,文件名字,文件扩展名. 之前,经常用切割字符串来实现, 可是经常会弄错. 尤其是启始位置,多少个字节,经常弄晕. 下面这种方法貌似比较简便: st ...

  3. 从字符串总分离文件路径、命名、扩展名,Substring(),LastIndexOf()的使用;替换某一类字符串,Replace()的用法

    一:从字符串总分离文件路径.命名.扩展名,上图 二:代码 using System; using System.Collections.Generic; using System.ComponentM ...

  4. python学习笔记(自定义库文件路径)

    博主最近在弄接口自动化.主要是基于python自带的unittest框架.包括 Pubilc模块定义所有接口. Main模块根据业务需求重新封装接口便于测试. config文件导入测试业务的固定参数. ...

  5. android自定义camera以及uri和文件路径之间的转换

    相对直接调用系统的camera,这种方法使用得相对还少一些.根据api文档,步骤如下: 定义一个预览类 可以参照<android高薪之路>这本书上面,有这种方法的一种完整实现 而对应的ac ...

  6. 修改CKFinder上传路径

    一.CKFinder的若干问题 1.单独使用 ckfinder从原fckeditor分离出来以后可以单独使用,通常我习惯于在工具栏中添加ckfinder.dll,这样以后要使用ckfinder直接从工 ...

  7. C# 自定义文件图标 双击启动 (修改注册表)

    程序生成的自定义文件,比如后缀是.test 这种文件怎么直接启动打开程序,并打开本文件呢 1.双击打开 2.自定义的文件,有图标显示 3.自定义的文件,点击右键有相应的属性 后台代码:(如何在注册表中 ...

  8. Spring配置文件详解 - applicationContext.xml文件路径

    spring的配置文件applicationContext.xml的默认地址在WEB-INF下,只要在web.xml中加入代码 org.springframework.web.context.Cont ...

  9. Spring配置文件详解 – applicationContext.xml文件路径

    Spring配置文件详解 – applicationContext.xml文件路径 Java编程                 spring的配置文件applicationContext.xml的默 ...

随机推荐

  1. mysql sleep连接太多怎么办

    摘要:interactive_timeout和wait_timeout参数对sleep连接的影响 interactive_timeout 参数含义:服务器关闭交互式连接前等待活动的秒数.交互式客户端定 ...

  2. JavaScript-实现滚动条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. js getAttribute getAttributeNode

    getAttribute():返回属性值,是一个文本字符串 getAttributeNode("属性名"):返回属性节点,是一个对象 <p id="bj" ...

  4. 用Python实现BP神经网络(附代码)

    用Python实现出来的机器学习算法都是什么样子呢? 前两期线性回归及逻辑回归项目已发布(见文末链接),今天来讲讲BP神经网络. BP神经网络 全部代码 https://github.com/lawl ...

  5. DPDK架构与特点

    当年在某公司实习的时候,当时老大给了我一份DPDK的文档,说是将来很有用,熟悉DPDK对能力提高也有帮助,就试着翻译了 <Intel DPDK Getting Started Guide> ...

  6. Android开发学习之对话框浅析

    对话框式程序运行中弹出的窗口.Android系统中有四种默认的对话框:警告对话框AlertDialog.进度对话框ProgressDialog.日期选择对话框DatePickerDialog以及时间选 ...

  7. 关于apache服务器加载so的报错

    早上突然发现我的虚拟机上的WEB应用访问不了了,后台检查httpd服务,无法启动,出现一行提示: ①starting httpd: httpd: Syntax error on line 163 of ...

  8. Model实例化类属性与值使用反射拼接成SQL语句

    public string GetInsertSqlByModel(Object o) { StringBuilder sbStart = new StringBuilder(); StringBui ...

  9. 【Android】20.2 视频播放

    分类:C#.Android.VS2015: 创建日期:2016-03-11 一.简介 本节例子和上一节的音频播放例子相似,也是最简单的示例,比如并没有考虑视频播放过程中电话打入的情况,也没有考虑复杂的 ...

  10. Effective JavaScript Item 33 让构造函数不再依赖newkeyword

    本系列作为EffectiveJavaScript的读书笔记. 在将function当做构造函数使用时,须要确保该函数是通过newkeyword进行调用的. function User(name, pa ...