首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CKEditor/ CKFinder与CakePHP 2.0

CKEditor/ CKFinder与CakePHP 2.0
EN

Stack Overflow用户
提问于 2012-03-30 10:26:18
回答 4查看 7.9K关注 0票数 3

我正在尝试将图片和文件上传到我的CKEditor实例中(在CakePHP应用程序中)。CKEditor一直工作得很好,但我无法让CKFinder部件工作。我可以让'Browse Server‘按钮出现,但是当我单击它时,我会得到一个窗口,其中包含以下消息:

在此服务器上找不到请求的

/ckfinder/ckfinder.html。

我尝试过各种不同的路径组合,但我显然没有击中正确的路径!

到目前为止,我的情况如下:

档案结构:

代码语言:javascript
复制
 In /app/webroot/js I have ckeditor and ckfinder
 In /app/webroot/ I have files, which is what I'd like to upload to (ideally files/Images and files/PDF, but that doesn't matter so much)

我在ckfinder/config.php中更改了路径,如下所示:

代码语言:javascript
复制
$baseUrl = '/files/';
$baseDir = '/www/MCS/app/webroot/files/'; (/www/MCS is the path to the app)

在我的视图文件中,我有以下内容:

代码语言:javascript
复制
<script type="text/javascript">
    var instance = CKEDITOR.instances['PageContent'];
    if(instance)
    {
        CKEDITOR.remove(instance);
    }
    var editor =
    CKEDITOR.replace( 'PageContent', {
        toolbar: 'Page',
        width: '737',
        height: '280',
        filebrowserBrowseUrl : 'ckfinder/ckfinder.html',
        filebrowserImageBrowseUrl : '/ckfinder/ckfinder.html?Type=Images',
        filebrowserFlashBrowseUrl : '/ckfinder/ckfinder.html?Type=Flash',
        filebrowserUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
        filebrowserImageUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
        filebrowserFlashUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
    });
</script>

我尝试更改上面代码中的路径,添加完整URL的各个部分,但没有任何帮助。

我使用的是最新版本的CKEditor和CKFinder,以及CakePHP 2.0。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-10 11:50:25

对于其他遇到这种情况的人,我做了些什么来解决这个问题:

下载到/app/webroot/js/ckfinder

在/app/webroot/js/ckfinder/config.php中,我有

代码语言:javascript
复制
$baseUrl = 'http://localhost/mysite/app/webroot/js/ckfinder/userfiles/';

我将身份验证函数更改为

代码语言:javascript
复制
function CheckAuthentication()
{
    session_name("CAKEPHP");
    session_start();
    if( isset($_SESSION['Auth']['User']) ) { return true; }
    return false;
}

我使用以下方法在视图中设置它:

代码语言:javascript
复制
var editor =
CKEDITOR.replace( 'PageContent', {
    toolbar: 'Page',
    width: '700',
    height: '280',
    filebrowserBrowseUrl : '/mysite/app/webroot/js/ckfinder/ckfinder.html',
    filebrowserImageBrowseUrl : '/mysite/app/webroot/js/ckfinder/ckfinder.html?type=Images',
    filebrowserFlashBrowseUrl : '/mysite/app/webroot/js/ckfinder/ckfinder.html?type=Flash',
    filebrowserUploadUrl : '/mysite/app/webroot/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
    filebrowserImageUploadUrl : '/mysite/app/webroot/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
    filebrowserFlashUploadUrl : '/mysite/app/webroot/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
});

一旦我这样做了,我可以看到'Browse‘按钮时,我点击’添加图像‘,但它提供了通常的'Cakephp找不到控制器错误’。

因此,我编辑了我的htaccess文件,以便任何被定向到ckfinder的文件都不会寻找控制器。为了做到这一点,我补充道:

代码语言:javascript
复制
   RewriteRule   ^ckfinder/ - [L]

在所有三个文件中执行RewriteEngine on之后

在那之后,它成功了!

我不知道这是否是最好的方法,但也许它会帮助别人一点点!

票数 4
EN

Stack Overflow用户

发布于 2012-04-04 21:36:41

我已经找到了@ webroot/js/,我下载并安装了http://labs.corefive.com/Projects/FileManager/,并将其定位为@ webroot/js/ckeditor/filemanager

对于ckeditor/config.js,我添加了以下代码:

代码语言:javascript
复制
CKEDITOR.editorConfig = function( config )
{
// Define changes to default configuration here. For example:
    config.uiColor = '#AADC6E';
    config.width = '100%';
    config.filebrowserBrowseUrl = '/js/ckeditor/filemanager/index.html';
    config.filebrowserImageBrowseUrl = '/js/ckeditor/filemanager/index.html?type=Images';
    config.filebrowserFlashBrowseUrl = '/js/ckeditor/filemanager/index.html?type=Flash';
    config.filebrowserUploadUrl = '/js/ckeditor/filemanager/connectors/php/filemanager.php';
    config.filebrowserImageUploadUrl = '/js/ckeditor/filemanager/connectors/php/filemanager.php?command=QuickUpload&type;=Images';
    config.filebrowserFlashUploadUrl = '/js/ckeditor/filemanager/connectors/php/filemanager.php?command=QuickUpload&type;=Flash';

};

我创建了文件夹/app/webroot/assets/img/

filemanager.config.js中我切换了

代码语言:javascript
复制
var fileRoot = '/app/webroot/assets/img/';

/app/webroot/js/ckeditor/filemanager/connectors/php/filemanager.config.php中,我添加到auth()

代码语言:javascript
复制
session_name("CAKEPHP");
session_start();
if( isset($_SESSION['Auth']['User']) )
 {
    return true;
    }
return false;   

在“添加/编辑”视图中,我添加了以下内容:

代码语言:javascript
复制
echo $this->Form->textarea('Content',array('class'=>'ckeditor'));

而且起作用了!这里是我用于参考http://www.hashtwo.com/blog/integrating-a-file-browser-into-ckeditor-cakephp的网站

票数 3
EN

Stack Overflow用户

发布于 2012-03-30 15:17:06

您提到了在/js中有ckfinder,所以我将使用/js在所有路径中占据优势。

代码语言:javascript
复制
filebrowserBrowseUrl : '/js/ckfinder/ckfinder.html',
filebrowserImageBrowseUrl : '/js/ckfinder/ckfinder.html?Type=Images',
filebrowserFlashBrowseUrl : '/js/ckfinder/ckfinder.html?Type=Flash',
filebrowserUploadUrl : '/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
filebrowserImageUploadUrl : '/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
filebrowserFlashUploadUrl : '/js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9941217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档