首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CKEditor + CKFinder图像上传

CKEditor + CKFinder图像上传
EN

Stack Overflow用户
提问于 2015-09-16 12:12:49
回答 1查看 4.3K关注 0票数 0

我在PHP5.6上使用CKEditor 4.5.2和CKFinder 3.0.0。通常情况下,集成工作正常--当我单击CKEditor图像按钮时,我可以单击“浏览服务器”按钮,CKFinder打开,我可以选择图像,也可以进行上传。

不起作用的是image2对话框中的“上传”选项卡。我总是会收到一个错误:“请求的资源类型无效。”当我点击“发送到服务器”按钮。

在我的CKFinder配置中,我定义了两个资源类型,名为ImagesLibrary;它们本质上是相同的,只不过Library是只读的--我只想允许上传到Images类型。

有多种方法可以配置CKEditor和CKFinder之间的集成。我正在为CKEditor使用一个自定义JS配置文件,并使用setupCKEditor方法将ckFinder连接到它,这与医生们相同。

代码语言:javascript
复制
CKFinder.setupCKEditor(ckeditor_1, {
    'height': '100%',
    'jquery': '/js/jquery-1.11.3.min.js',
    'skin': 'jquery-mobile',
    'swatch': 'a',
    'themeCSS': '/themes/mytheme.min.css',
    'filebrowserBrowseUrl': '/ckfinder/ckfinder.html',
    'filebrowserImageBrowseUrl': '/ckfinder/ckfinder.html?Type=Images',
    'filebrowserImageUploadUrl':  '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'
}, "Images");

我尝试在我的CKEditor调用中将相同的值传递给CKEDITOR.replace,并在我的外部配置文件中的config属性上设置它们,但是没有什么改变--我仍然得到相同的错误。

我该怎么做?或者,由于CKFinder上传器工作正常,如何在image2对话框中禁用上传选项卡?

更新:下面是创建CKEditor和CKFinder实例的当前代码:

代码语言:javascript
复制
var ckeditor_1 = CKEDITOR.replace('html', {
    "baseHref":"http://mysite.mac.local/",
    "toolbarStartupExpanded":true,
    "extraPlugins":"symbol",
    "customConfig":"/js/ckconfig.js"
});
CKFinder.setupCKEditor( ckeditor_1, {
    'height': '100%',
    'jquery': '/js/jquery-1.11.3.min.js',
    'skin': 'jquery-mobile',
    'swatch': 'a',
    'themeCSS': '/themes/mytheme.min.css'
}, { type: "Images" } );

以及我的CKEditor配置文件:

代码语言:javascript
复制
CKEDITOR.editorConfig = function (config) {

    // Define changes to default configuration here. For example:
    // config.language = 'fr';
    // config.uiColor = '#AADC6E';
    config.docType = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
    config.toolbarGroups = [
        {name: 'document', groups: ['mode', 'document', 'doctools']},
        {name: 'clipboard', groups: ['clipboard', 'undo']},
        {name: 'editing', groups: ['find', 'selection', 'spellchecker']},
        {name: 'links'},
        {name: 'insert'},
        {name: 'tools'},
        {name: 'others'},
        '/',
        {name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
        {name: 'paragraph', groups: ['list', 'indent', 'blocks', 'align']},
        {name: 'styles'},
        {name: 'colors'},
        {name: 'about'},
        {name: 'symbol'}
    ];
    config.removePlugins = 'templates,save,specialchar,image,flash,scayt,forms,wsc,print,iframe,pagebreak';
    CKEDITOR.plugins.addExternal('symbol', '/ckeditorplugins/symbol/', 'plugin.js');
    config.extraPlugins = 'symbol';
    config.templates_replaceContent = false;
    config.templates_files = [
        '/ckeditorplugins/templates/templates.js'
    ];
    config.allowedContent = true;
    config.toolbarCanCollapse = true;
    config.fullPage = true;
    config.skin = 'bootstrapck';
    config.height = 400;
    config.uiColor = '#f9dda0';
    config.autoParagraph = false;
    config.enterMode = CKEDITOR.ENTER_BR;
    CKEDITOR.on('instanceReady', function (ev) {
        ev.editor.dataProcessor.writer.selfClosingEnd = '>';
    });
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-17 06:49:39

看起来,您对CKEditor和CKFinder的选择是混合的。CKFinder.setupCKEditor()的第二个参数是CKFinder配置,而您使用的所有filebrowser*选项都属于CKEditor配置。请看一下CKFinder.setupCKEditor()文档。第三个参数允许您定义上传URL参数,因此您可以在这里指向上传到Images

请尝试使用以下代码片段:

代码语言:javascript
复制
CKFinder.setupCKEditor(ckeditor_1, {
    'height': '100%',
    'jquery': '/js/jquery-1.11.3.min.js',
    'skin': 'jquery-mobile',
    'swatch': 'a',
    'themeCSS': '/themes/mytheme.min.css'
}, {type: "Images"});

使用CKFinder.setupCKEditor()时,CKEditor的上传路径将自动设置,因此不需要显式配置它。

如果以上内容不适用于您,请提供创建ckeditor_1的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32608284

复制
相关文章

相似问题

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