让 FCKeditor 支持多用户Web环境(以PHP为例)

来源:互联网 发布:万网域名注册怎么用 编辑:程序博客网 时间:2024/05/22 06:43

06月 23rd, 2009
    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’] . ‘/’;

    更多问题,请与作者本人探讨。

    张庆(网眼) 2009-6-23
    来自“网眼视界”:http://blog.why100000.com
    “十万个为什么”电脑学习网:http://www.why100000.com

原创粉丝点击