讓 FCKeditor 支援多使用者Web環境(以PHP為例)

weixin_33858249發表於2017-11-09

FCKeditor 是個很優秀的 Web 編輯器,很多專案甚至產品中都在用它。但它預設的上傳檔案目錄為/userfiles/,也就是說,如果在編輯器中上傳了圖片等檔案的話,只能在/userfiles/資料夾下。對於多使用者會員系統的網站系統,這顯然是不合適的,因為是不能讓所有使用者都共享同一個資原始檔夾的。
    所以必須進行動態配置,讓不同的使用者把圖片、Flash等資原始檔上傳到自己私有的資料夾下。
    FCKeditor 是在 editor\filemanager\connectors\php\config.php 配置檔案中進行上傳目錄配置的,核心語句是:
    $Config[’UserFilesPath’] = ‘/userfiles/’;
    只要修改該條語句,就能達到配置上傳目錄的目的。
    以 lightPHP 這個流行的 CMS 為例,它的多使用者資料夾在 /datas/userfiles/ 資料夾下,例如 /datas/userfiles/admin 是使用者 admin 的使用者目錄,其他使用者以此類推。所以如果某個使用者登入後,$Config[’UserFilesPath’] 陣列的值就應該等於/datas/userfiles/[使用者名稱]。這個可以通過會話來實現。例如,$_SESSION[’current_user’] 代表當前使用者名稱,那麼配置語句就是:

    $Config[’UserFilesPath’] = ‘/datas/userfiles/’ . $_SESSION[’current_user’] . ‘/’;

    這樣就實現了多使用者環境下上傳目錄的動態配置。
    具體實現時,應當注意的問題是,要用 session,必須首先執行 session_start(); 語句。還有,在某些情況下,如果 session 丟失,還需要注意 session 的路徑問題。
    在 lightPHP 系統中,完整的配置語句是:

    session_save_path(realpath(’../../../../../../datas/temp’));
    session_start();
    $Config[’UserFilesPath’] = ‘/datas/userfiles/’ . $_SESSION[’current_user’] . ‘/’;

    更多問題,請與作者本人探討。








本文轉自網眼51CTO部落格,原文連結:http://blog.51cto.com/itwatch/286470,如需轉載請自行聯絡原作者

相關文章