PHP實作 Ckeditor+Ckfinder檔案上傳  動態指定儲存位置
                     
                    
	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']
	    判斷是否已經有該名使用者的資料夾,如果沒有,就建立
	    $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. 完成!
	    只能看見自己上傳的圖片,如下圖
	 
	 
	 
	※附加說明:如果有權限存取的問題,請務必先修改uploads資料夾的權限讓此資料夾具有新增、讀取、修改、刪除的權限,
	                        並且將此權限也套用到此資料夾內的所有資料夾和檔案。
	 
                     
 
參考或是複製語法時,別忘了留個言喔 ^ ^ ~