我正在使用带有以下插件的 CKEditor 4.16.2:
filebrowser
uploadimage
uploadwidget
我没有使用 CKFinder.
我的配置包括:
CKEDITOR.config.filebrowserUploadUrl = '/path/to/upload.php?type=image';
CKEDITOR.config.filebrowserUploadMethod = 'form';
我的 upload.php 脚本是:
$type = $_GET['type'];
if($type == 'image'){
$allowed_extension = array("png","jpg","jpeg");
$file_extension = pathinfo($_FILES["upload"]["name"], PATHINFO_EXTENSION);
if(in_array(strtolower($file_extension),$allowed_extension)){
if(move_uploaded_file($_FILES['upload']['tmp_name'], "uploads/".$_FILES['upload']['name'])){
$url = "/$pathToUploadedImageDir/".$_FILES['upload']['name'];
// This works for drag and drop, and paste, but not for image upload
// What to echo here?
echo json_encode( array('uploaded'=> 1,
'filename' => $_FILES['upload']['name'],
'url' => $url ) ) ;
} else {
echo "Image not uploaded";
}
}
exit;
}
以上适用于拖放和粘贴屏幕截图。
但是,当我在图像窗口的上传选项卡中上传图像时,它成功地将图像上传到正确的目录,但接下来我看到的是出现的 JSON 对象的文本(从我的 upload.php 脚本返回)代替“上传”按钮。然后什么都没有发生。
我期望发生的是打开“图像信息”选项卡并查看图像预览和图像 URL 以及填充的宽度和高度(如 CKEditor 示例页面(使用 CKFinder)中发生的那样,但不是我的).
控制台中没有出现任何错误。
那么我需要在 upload.php 中回显什么?或者是否还有其他未正确配置的内容? TIA.