php环境下ckeditor和ckfinder的配置详解

时间:2022-04-17 07:57:47

摘要:老牌编辑器FCK的升级版CKEditor(http://ckeditor.com/) 经过重写,提供了丰富而强大的集成和互动的API。新版编辑器是完全基于插件,它可以扩展所有部件以符合需求。FCKeditor升级后的 CKEditor去掉了上传功能,只提供了基本的文本编辑功能,上传模块由另一个组件CKFinder来实现.换句话说编辑器如果需要上传功能,就需要再 下载CKFinder(http://www.ckfinder.com/)

1.分别解压CKEditorCKFinder到你的web目录,为了方便使用我们都把它放到同一个目录下;

2、ckeditor 配置

<textarea class="textarea_editor span12" rows="6" name="Intro" placeholder="Enter text ...">放放风</textarea>
             
                <script src="__PUBLIC__/Component/Ckeditor/ckeditor.js"></script>  一定要引入
                <script type="text/javascript" src="__PUBLIC__/Component/Ckfinder/ckfinder.js"></script> 一定要引入
                <script type="text/javascript">
                    // 启用 CKEitor 的上传功能,使用了 CKFinder 插件
                    CKEDITOR.replace( 'Intro', {
                        filebrowserBrowseUrl        : '__PUBLIC__/Component/Ckfinder/ckfinder.html',
                        filebrowserImageBrowseUrl   : '__PUBLIC__/Component/Ckfinder/ckfinder.html?Type=Images',
                        filebrowserFlashBrowseUrl   : '__PUBLIC__/Component/Ckfinder/ckfinder.html?Type=Flash',
                        filebrowserUploadUrl        : '__PUBLIC__/Component/Ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
                        filebrowserImageUploadUrl   : '__PUBLIC__/Component/Ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
                        filebrowserFlashUploadUrl   : '__PUBLIC__/Component/Ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
                    });
                </script>

3、配置ckfinder

(1)在33行把function CheckAuthentication() { return false; }修改成function CheckAuthentication() { return true; }
当然直接这样做是不安全的。建议通过session去判断,例如:

function CheckAuthentication()
{
    if(null==$_SESSION['Admin_User'] || $_SESSION['Admin_User']==''){
        return false;
    }else{
        return true;
    }
}

(2)在第63行修改上传路径

$baseUrl = '/uploads/';这是我的设置,即将上传文件都保存在网站根目录的uploads文件夹下。

(3)把82行$baseDir的路径修改成绝对路径,因为这里resolveUrl函数不支持。绝对路径是从盘符开始的。我的是windows下web服务装在D盘修改成;

$baseDir = 'd:/wamp/www/test/mynews/upload/';//这里写你的绝对路径

(4)实现CKFinder上传文件时按当前时间戳重命名文件名,打开:ckfinder\core\connector\php\php5\CommandHandler\FileUpload.php
找到下面这几行,大约在59-61行左右:
if ($sFileName != $sUnsafeFileName) {
$iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID_NAME_RENAMED;
}
在其后面加入如下两行代码:
$sExtension=CKFinder_Connector_Utils_FileSystem::getExtension($sFileName);
$sFileName=date("Ymd")."_".date("His").".".$sExtension;

ok 了,就这么简单,有好的建议请留言