CKFinder根据用户设置权限,不同用户有自己的私有的、独立的文件夹
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根据用户设置权限,不同用户有自己的私有的、独立的文件夹的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 像素级模仿iPhone!印度国产厂商再推
- 下一篇: 部分小米平板 5 开始推送安卓 13 /