Javascript 无法找到使用ckeditor成功上载的正确事件
我刚刚在CKEditor中加入了一个自定义文件管理器。Javascript 无法找到使用ckeditor成功上载的正确事件,javascript,php,ckeditor,Javascript,Php,Ckeditor,我刚刚在CKEditor中加入了一个自定义文件管理器。 我可以看出,当使用内置的添加图像功能时,它工作正常 问题:我有一个自定义的“引导转盘”插件,我还提供了图像上传功能 目标:就像内置的添加图像一样,在成功上传图像后激活下一个或另一个选项卡,我希望我的插件也这样做但它只显示了一个红色进度条,尽管在同一选项卡上图像上载成功。似乎我错过了一些上传成功事件。但是文档没有提供有关FileManger事件的信息,或者我找不到任何信息 这是我的密码: CKEDITOR.editorConfig = fun
我可以看出,当使用内置的添加图像功能时,它工作正常 问题:我有一个自定义的“引导转盘”插件,我还提供了图像上传功能 目标:就像内置的添加图像一样,在成功上传图像后激活下一个或另一个选项卡,我希望我的插件也这样做但它只显示了一个红色进度条,尽管在同一选项卡上图像上载成功。似乎我错过了一些上传成功事件。但是文档没有提供有关FileManger事件的信息,或者我找不到任何信息 这是我的密码:
CKEDITOR.editorConfig = function(config){
config.filebrowserUploadUrl = '/admin/upload/';
config.filebrowserImageUploadUrl = '/admin/upload/';
config.filebrowserBrowseUrl = '/admin/upload/?type=browse';
}
php路由器将请求路由到admin/upload
此php函数:
public function fileUpload($params){
$funcNum = $_GET['CKEditorFuncNum'];
$url = '';
$error = '';
if($_FILES['upload']['error'] > 0 ){
switch($_FILES['upload']['error']){
case 1: $error = 'upload_max_filesize overflow';
break;
case 2: $error = 'max_file_size overflow';
break;
case 3: $error = 'File could not upload completely';
break;
case 4: $error = 'No File has been uploaded';
break;
case 6: $error = 'No temporary Folder given.';
break;
case 7: $error = 'Upload aborted: File could not been written.';
break;
}
}
$allowedTypes = array('text/plain','image/jpeg','image/gif', 'image/png');
$type = $_FILES['upload']['type'];
if(!in_array($type, $allowedTypes)){
$error = 'This file type is not allowed';
}
if(file_exists(ROOT_PATH.'/app/uploads/'.$_FILES['upload']['name'])){
$error = 'File already exists!';
}
if($error === '' && is_uploaded_file($_FILES['upload']['tmp_name'])){
$upfile = ROOT_PATH.'/app/uploads/'.$_FILES['upload']['name'];
if(move_uploaded_file($_FILES['upload']['tmp_name'], $upfile)){
$url = '/app/uploads/'.$_FILES['upload']['name'];
}else{
$error .= 'Could not move File to destination folder!';
}
}
exit("<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction($funcNum, '$url', '$error');</script>");
}
解决方案:
onSelect: function( fileUrl, error ) {
if(error !== ''){
alert(error);
}else{
var document = this.getElement().getDocument();
var element = document.getById( 'imgPreview' );
element.setHtml('<img src="'+fileUrl+'" style="width:100px"><br />');
var dialog = this.getDialog();
dialog.getContentElement('tab2','id2').focus();
}
return false;
}
onSelect:function(fileUrl,错误){
如果(错误!=''){
警报(错误);
}否则{
var document=this.getElement().getDocument();
var元素=document.getById('imgPreview');
setHtml(“
”);
var dialog=this.getDialog();
getContentElement('tab2','id2').focus();
}
返回false;
}
我认为进度条是上传后未完成显示的xdebug通知错误
现在我上传了一张图片,然后把它放到下一个标签上进行进一步的处理,然后把焦点放在那个标签上
onSelect: function( fileUrl, error ) {
if(error !== ''){
alert(error);
}else{
var document = this.getElement().getDocument();
var element = document.getById( 'imgPreview' );
element.setHtml('<img src="'+fileUrl+'" style="width:100px"><br />');
var dialog = this.getDialog();
dialog.getContentElement('tab2','id2').focus();
}
return false;
}