CKFinder 默认情况下多个用户共用同一个图片目录。所有上传的图片和Flash全部保存在同一个文件夹(默认为 userfiles)内。

    现在想实现:

    第1个需求:不同用户有自己的私有的、独立的文件夹;
    第2个需求:同一个用户的文件能根据上传时间自动归类;

    在 CKEditor 的以前版本 FCKEditor 中,其实也可以实现这些功能,只是修改原代码比较繁琐,需要修改的地方也很多(参见:http://blog.why100000.com/?p=513)。而新版本的 CKEditor 提供的 config.php 文件,为我们编程提供了一定的方便,我们现在主要是“编程”,而不是“修改”了。

    找到 /ckfinder/config.php 中的 $baseUrl。这个变量是 CKFinder 管理的顶级目录。假设 $baseUrl='/userfiles/',那么默认的目录结构是:

    /userfiles/
    flashes/
    images/

    如果想改成这个结构:

    /userfiles/
    user1
    flashes/
    images/
    user2
    flashes/
    images/

    只要为每个用户设定好各自的顶级目录就可以了: $baseUrl = '/userfiles/' . $user;

    注意,如果 $user 的值是从 $_SESSION 变量中取得,需要在 /ckfinder/config.php 中加上 session_start() 语句。

     好了,第一个需求实现了。

    第二个需求:同一个用户的文件能根据上传时间自动归类

    这需要两个步骤:

    第一、找到 /ckfinder/core/connector/php/php5/CommandHandler/FileUpload.php 文件(for PHP5),文件上传的主要逻辑就在这里了。

    在这个文件里找到 $sServerDir = $this->_currentFolder->getServerPath();

    将其改成:

    $sServerDir = $this->_currentFolder->getServerPath();
    if ($_GET['command'] == 'QuickUpload')
    { //加上以年和月两层目录
    $sServerDir .= '/'. date('Y/m');
    }
    if (!file_exists($sServerDir))
    { //目录若未出现则创建它
    CKFinder_Connector_Utils_FileSystem::createDirectoryRecursively($sServerDir);
    }

    第二、找到 /ckfinder/core/connector/php/php5/CommandHandler/QuickUpload.php

    找到其中的 $oRegistry->set("FileUpload_url", $this->_currentFolder->getUrl());

    将其改为:

    $oRegistry->set("FileUpload_url", $this->_currentFolder->getUrl() . date('Y/m/'));

    好了,大功告成。

    总结:

    无论怎样的文件命名规则,都是 $baseUrl、$sServerDir 和 $sFileName 这三个变量的组合。

    如果是 QuickUpload,就是从 ckeditor 的控件去上传文件,还需留意两个要注册的变量:

    $oRegistry->set("FileUpload_url", $value); 和
    $oRegistry->set("FileUpload_fileName", $value);

    FileUpload_url,FileUpload_fileName 这两个变量是将刚上传的文件的 URL 返回到前端的 ckeditor。

    作者:张庆(网眼) 西安 PHP 教育培训中心 2010-8-25
    来自“网眼视界”:http://blog.why100000.com
    作者微博:http://t.qq.com/zhangking
    “十万个为什么”电脑学习网:http://www.why100000.com

CKFinder根据用户设置权限,不同用户有自己的私有的、独立的文件夹的更多相关文章

  1. OA之为用户设置角色和为用户设置权限

    1.为用户设置角色 { Layout = null; } @using OA.Model <!DOCTYPE html> <html> <head> <met ...

  2. Linux用户和权限——管理用户和用户组的命令

    Linux用户和权限——管理用户和用户组的命令 摘要:本文主要学习了在Linux系统中管理用户和用户组的命令. useradd命令 useradd命令可以用来创建新用户. 基本语法 useradd [ ...

  3. Oracle创建用户设置权限

    (转:http://www.cnblogs.com/yangy608/archive/2011/08/22/2148893.html) create user TEST identified by & ...

  4. mysql 给用户设置权限

    grant   all   on   wordpress.*   to  wordpress@'10.0.0.%'  identified  by  'wordpress'; all    全部权限 ...

  5. mysql 创建用户, 分配权限, 删除用户

    通过create user 命令来创建用户, 有两种方式:(只介绍通过 create user 命令, 直接往user表中插入数据的方式,这里就不说了) 创建用户的同时, 指定用户可登录的主机和密码 ...

  6. mysql新加用户设置权限

    1.开通操作权限和表权限 GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON interface.* TO test1@'%' identif ...

  7. FTP配置和用户设置权限

    http://www.cnblogs.com/xcxc/archive/2013/01/25/2876749.html ---------------------------------------- ...

  8. vim没有权限却可以强制保存时所引起的思考 ------ 文件夹权限对所属文件的权限影响

    最近在拿着Linux 鸟叔私房菜对着Linux 系统学习一下基本操作,虽然已经使用Linux系统已经好多年不过却一直没有系统的学习一下.在用vim 编辑一个文件的时候出现了一个很神奇的事情,明明该文件 ...

  9. Oracle用户、权限、角色管理(转)

    http://blog.csdn.net/junmail/article/details/4381287 Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户 ...

随机推荐

  1. ltsdangerous加密解密

    前言 在做QQ第三方登录时,用户跳转到QQ登录界面登录成功后,会在URL返回一个code参数.前端把code发送给后端.后端收到后,会查询出openid.然后判断openid是否存在,如果存在就可以绑 ...

  2. UVA - 796

    UVA- 796 /** 题意:给出一个图,然后看此图的存在的桥,并且输出是哪一个, 做法:Tarjan(不存在重边) **/ #include<iostream> #include< ...

  3. LeetCode239. Sliding Window Maximum

    Given an array nums, there is a sliding window of size k which is moving from the very left of the a ...

  4. eclipse开发文档模板

    从files依次向下:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元 ...

  5. SpringMVC组件配置

    web.xml . springmvc-servlet.xml 配置SpringMVC四大组件. web.xml 配置前端控制器:前端控制器就是个servlet <!-- 配置前端控制器 --& ...

  6. ThinkPHP 多数据库自动连接设计

    配置文件 database.php <?php return array( 'dbname1'=>'mysql://root:root@localhost/dbname1#utf8', ' ...

  7. onethink 重写URL后,apache提示No input file specified

    <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{RE ...

  8. 洛谷P2587 [ZJOI2008] 泡泡堂

    题目传送门 分析:一道策略游戏题,要求最大期望得分和最小期望得分.首先分析最大,很显然是可以用一种类似于田忌赛马的思维来做,将两队的实力按照从大到小(其实从小到大也可以)排序,然后就按照顺序比较,可能 ...

  9. 决策树:ID3与C4.5算法

    1.基本概念 1)定义: 决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系,树中每个节点代表的某个可能的属性值. 2)表示方法: 通过把实例从根结点排列到某个叶子结点来分类实例,叶子 ...

  10. Bzoj 4524 [Cqoi2016]伪光滑数(堆)

    题面 题解 先筛出$<128$的质数,很少,打个表即可 然后钦定一个质数最大,不断替换即可(丢进大根堆里面,然后取出一个,替换在丢进去即可) 具体来说,设一个四元组$[t,x,y,z]$表示当前 ...