CKEditor + CKFinder 图片上传
CKEditor + CKFinder image uploads
我在 PHP 5.6 上使用 CKEditor 4.5.2 和 CKFinder 3.0.0。通常集成工作正常 - 当我单击 CKEditor 图像按钮时,我可以单击 "Browse server" 按钮并打开 CKFinder,我可以 select 图像,也可以上传。
image2 对话框中的 'Upload' 选项卡不起作用。当我点击 "Send to server" 按钮时,我总是收到一个错误提示 "The requested resource type is not valid."。
在我的 CKFinder 配置中,我定义了两种资源类型,分别称为 Images
和 Library
;这些本质上是相同的,除了 Library
是只读的 - 我只想允许上传到 Images
类型。
有多种配置CKEditor 和CKFinder 之间集成的方法。我正在为 CKEditor 使用自定义 JS 配置文件,并使用 setupCKEditor
方法将 ckFinder 连接到它,按照 the docs:
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.replace
调用中将相同的值传递给 CKEditor,并在我的外部配置文件中将它们设置在 config
属性 上,但没有任何变化 -我仍然遇到同样的错误。
我应该怎么做?或者,由于 CKFinder 上传器工作正常,我如何禁用 image2 对话框中的上传选项卡?
更新:这是我当前创建 CKEditor 和 CKFinder 实例的代码:
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 配置文件:
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 = '>';
});
};
您似乎混合了 CKEditor 和 CKFinder 的选项。 CKFinder.setupCKEditor()
的第二个参数是 CKFinder 配置,而你使用的所有 filebrowser*
选项都属于 CKEditor 配置。请看一下CKFinder.setupCKEditor() docs。第三个参数允许您定义上传 URL 参数,所以这里您可以将上传指向 Images
.
请尝试以下代码段:
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
.
的代码
我在 PHP 5.6 上使用 CKEditor 4.5.2 和 CKFinder 3.0.0。通常集成工作正常 - 当我单击 CKEditor 图像按钮时,我可以单击 "Browse server" 按钮并打开 CKFinder,我可以 select 图像,也可以上传。
image2 对话框中的 'Upload' 选项卡不起作用。当我点击 "Send to server" 按钮时,我总是收到一个错误提示 "The requested resource type is not valid."。
在我的 CKFinder 配置中,我定义了两种资源类型,分别称为 Images
和 Library
;这些本质上是相同的,除了 Library
是只读的 - 我只想允许上传到 Images
类型。
有多种配置CKEditor 和CKFinder 之间集成的方法。我正在为 CKEditor 使用自定义 JS 配置文件,并使用 setupCKEditor
方法将 ckFinder 连接到它,按照 the docs:
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.replace
调用中将相同的值传递给 CKEditor,并在我的外部配置文件中将它们设置在 config
属性 上,但没有任何变化 -我仍然遇到同样的错误。
我应该怎么做?或者,由于 CKFinder 上传器工作正常,我如何禁用 image2 对话框中的上传选项卡?
更新:这是我当前创建 CKEditor 和 CKFinder 实例的代码:
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 配置文件:
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 = '>';
});
};
您似乎混合了 CKEditor 和 CKFinder 的选项。 CKFinder.setupCKEditor()
的第二个参数是 CKFinder 配置,而你使用的所有 filebrowser*
选项都属于 CKEditor 配置。请看一下CKFinder.setupCKEditor() docs。第三个参数允许您定义上传 URL 参数,所以这里您可以将上传指向 Images
.
请尝试以下代码段:
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
.