• (配置)CKEditor+CKFinder+php上传配置,根据年月命名创建文件夹来存放


    CKEditor+CKFinder+php上传配置   

    新版本的CKEditor只提供了基本的文本编辑功能,上传模块由另一个组件CKFinder。这里主要记录CKFinder上传的一些参数配置,能够成功上传文件,自定义上传文件目录,按日期+随机字符重命名文件。
    一、基本概念理清
    1、CKEditor
    文本编辑组件,本身没有上传的功能。
    2、CKFind
    文件上传组件,配合CKEditor使用
    3、CKEditor和CKFind的整合
     ckeditor有个缺点就是不能上传本地的图片和flash。
      因为CKEditor属于文本编辑的,CKFind是属于上传使用的,所以要配置好这两个组件,这样我们在文本编辑器上传的文件,通过CKFind处理后,返回一个url地址到编辑器的文本框,这个路径是我们要用到的路径,所以必须整合。
     
    二、必须要配置的几个地方
    1、开启CKFind的上传功能  
    打开ckfinderconfig.php文件,找到函数CheckAuthentication(),大约在21行,将最后一行return false;改为return true;
    2、配置CKEditor

    打开ckeditor/config.js进行配置 

    config.language = 'zh-cn'; //配置语言  
    
    config.uiColor = '#AADC6E';//界面颜色
    
    config.width = 700; //宽度  config.height = 350; //高度
    2、自定义上传文件目录。
    打开ckfinderconfig.php文件,设置变量$baseUrl = '/upload/';,大约在63行。
    3、修改文件名,不修改的话当文件名为中文时必会出现乱码。
      方法可以为简单修改或编写重命名文件的函数,如果是编写函数,那么在最后直接调用即可。
     
    CKEditor的配置文件是:config.js    CKFind的配置文件是:config.php
    三、具体步骤:
    1、下载CKFinder。
    下载CKFinder,解压跟CKEditor放同一目录,下载地址:http://ckfinder.com/

    2、开启上传功能。
    打开ckfinderconfig.php文件,找到函数CheckAuthentication(),大约在21行,将最后一行return false;改为return true;

    3、自定义上传文件目录。
    打开ckfinderconfig.php文件,设置变量$baseUrl = '/upload/';,大约在63行。

    4、设置按日期生成上传子目录。
    如果您的网站上传文件比较多,文件都在一个目录下的话,对文件性能可能不是很思想,这时我们按/upload/yyyy/mm/格式生成目录。打开ckfinderconfig.php文件,找到$config['ResourceType'][],大约在189行,在 'url' => $baseUrl . 'files' 和 'directory' => $baseDir . 'files' 都加上  . '/' . date("Y") . '/' . date("m"),其它 Images,Flash项也是如此。这里的 url 表示上传后返回到输入框的地址,directory表示上传文件的目录。

    5、按日期+随机字符重命名上传文件。
    这样可以支持中文名字的文件上传。打开ckfindercoreconnectorphpphp5CommandHandlerFileUpload.php文件,在文件最后加个生成文件名函数
    function mySetFileName() {
        $gettime = explode(' ', microtime());
        $string = 'abcdefghijklmnopgrstuvwxyz0123456789';
        $rand = '';
    
        for ($x = 0; $x < 5; $x++) {
            $rand .= substr($string, mt_rand(0, strlen($string) - 1), 1);
        }
        return date("ymdHis") . substr($gettime[0], 2, 6) . $rand;
    }

    查找下面代码,大约在63行,
    if ($sFileName != $sUnsafeFileName) {
        $iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID_NAME_RENAMED;
    }
    在下方添加下面代码,
    $sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sFileName);         //调用随机命名函数,生成随机的文件名
    $sFileName = mySetFileName() . '.' . $sExtension;  
  • 相关阅读:
    Poj 2406--Power Strings(KMP)
    杭电2682--Tree(Prim)
    杭电1827--Summer Holiday(SCC + 缩点)
    杭电2181--哈密顿绕行世界问题(Dfs)
    杭电1269--迷宫城堡(强连通分量)
    南阳21--三个水杯(Bfs)
    杭电1203--I NEED A OFFER!(01背包)
    e.send和next(e)的区别
    python中yield与return的用法与区别
    迭代器
  • 原文地址:https://www.cnblogs.com/wuyinghong/p/3237841.html
Copyright © 2020-2023  润新知