首页 > 编程 > PHP > 正文

PHP实作Ckeditor+Ckfinder文件上传 动态指定储存位置

2020-03-22 19:21:25
字体:
来源:转载
供稿:网友
  • 1. 首先,可以先到http://ckeditor.com/下载最新版本的Ckeditor和Ckfinder。

    2. 将下载好的档案解压缩后,放到自己的网站数据夹里面。

    例如我的网站数据夹名称为 test ,放置位置就是 D:/AppServ/www/test/ckeditor

    D:/AppServ/www/test/ckfinder。

    3. 如何设置可以参考 ckeditor/_samples/index.html 或是 http://ckeditor.com/demo , 也可以上网页搜寻关键词 ckeditor,会有许多教学文件。

    4. 接下来如何动态自订要储存的数据夹?

    今天建置的是共享的Ckeditor,存取的人有数名,如果都将上传图片放置在同一个数据夹里面,这样就有可能被其它人窜改档案或是被删除。

    本文利用SESSION来判断登入者是否可以使用和建立他们自己的数据夹,当然,在使用Ckeditor,开启"影像属性"的时候,也只会看见自己数据夹内的档案。

    开启ckfinder/config.php 档案

    (1)找到 function CheckAuthentication() 这一段程序,将此function修改为

              //将可以使用Ckeditor上传档案的人,利用SESSION储存起来后,在下面程序片段,来判断哪些人可以使用。          if(isset($_SESSION['MM_Username'])){                return true;          }else{                return  false;          }

    (2)设定储存的位置,本文是使用绝对路径,使用搜寻找到$baseUrl和$baseDir,设定如下

             $baseUrl = 'http://网站/uploads/images/';        //读取路径         $baseDir = resolveUrl($baseUrl);                    //储存实体路径

    (3)

    $config['Thumbnails'] = Array(                                                           'url' => $baseUrl . $_SESSION['MM_Username'].'/_thumbs',                                                           'directory' => $baseDir . $_SESSION['MM_Username'].'/_thumbs',                                                           'enabled' => true,                                                           'directAccess' => false,                                                           'maxWidth' => 100,                                                           'maxHeight' => 100,                                                           'bmpSupported' => false,                                                           'quality' => 80);

    (4)上传档案最大尺寸,这边也可以使用预设的,看需求。

           $config['Images'] = Array(                                                    'maxWidth' => 610,                                                    'maxHeight' => 1200,                                                    'quality' => 80);

    (5)特别指定资料夹和档案的权限,这边也可以使用预定的,看需求。

             //if(isset($_SESSION['MM_Username'])){             $config['AccessControl'][] = Array(                                                                        'role' => '*',                                                                        'resourceType' => '*',                                                                        'folder' => '/',                                                                         'folderView' => true,           //浏览资 料夹                                                                        'folderCreate' => true,       //建立资 料夹                                                                        'folderRename' => true,   //重新命名数据夹                                                                        'folderDelete' => true,       //删除数据夹                                                                         'fileView' => true,                                                                        'fileUpload' => true,                                                                        'fileRename' => true,                                                                        'fileDelete' => true);        /*}else{                $config['AccessControl'][] = Array(                                                                           'role' => '*',                                                                           'resourceType' => '*',                                                                           'folder' => '/',                                                                            'folderView' => false,                                                                           'folderCreate' => false,                                                                           'folderRename' => false,                                                                           'folderDelete' => false,                                                                            'fileView' => true,                                                                           'fileUpload' => true,                                                                           'fileRename' => true,                                                                           'fileDelete' => true);       }*/

    (6)

          $config['ResourceType'][] = Array(                                                              'name' => 'Images',                                                              'url' => $baseUrl .$_SESSION['MM_Username'],                                                              'directory' => $baseDir .$_SESSION['MM_Username'],                                                              'maxSize' => 0,                                                              'allowedExtensions' => 'bmp,gif,jpeg,jpg,png',                                                              'deniedExtensions' => '');

    5. 前台的程序代码将登入的使用者利用SESSION记录起来存放在$_SESSION['MM_Username']
    判断是否已经有该名使用者的数据夹,如果没有,就建立 www.it165.net

        $file='uploads/images'.$_SESSION['MM_Username'];        //本网站是test,刚刚设定Ckfinder存读档案的路径为'http://网站/uploads/images/'    if(!is_dir($file)){                              $mask = umask(0);                 //限定新增数据夹的权限                              $cf = mkdir($file,0777);           //建立数据夹,并设定权限                              umask($mask);                       //设回原本数据夹的权限    }

    6. 完成!
    只能看见自己上传的图片,如下图


    附件下载:http://www.it165.net/uploadfile/2013/0911/20130911074949557.rar

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表