ckeditor图片上传返回JSON数据格式 示例

今天用“ckeditor4+CKFinder3”做图片上传的时候,结果一直获取不到图片的返回值,最后才发现我返回的数据类型不对,查了手册,得到如下答案:

从CKEditor 4.9开始,所有文件上传(包括由文件浏览器插件启动的文件上传)都希望得到JSON响应。

 

像我们以下常用的配置参数都是一样的返回JSON数据:

  • filebrowserBrowseUrl
  • filebrowserImageBrowseUrl
  • filebrowserUploadUrl
  • filebrowserImageUploadUrl
  • uploadUrl

这里如有不懂,具体请看:ckeditor图片上传Url参数配置详解

 

一、ckeditor图片上传,响应:文件成功上传

 

例1:

成功上传文件后,期望包含以下条目的JSON响应:

{
    "uploaded": 1,
    "fileName": "foo.jpg",
    "url": "/files/foo.jpg"
}

 

例2:

也可以设置一条错误消息,以指示文件上传已完成,但是发生了一些非标准情况。

{
    "uploaded": 1,
    "fileName": "foo(2).jpg",
    "url": "/files/foo(2).jpg",
    "error": {
        "message": "具有相同名称的文件已存在。 上载的文件已重命名为foo(2).jpg"
    }
}

 

二、ckeditor图片上传,响应:无法上传文件

当无法上传文件时,期望包含以下条目的JSON响应:

{
    "uploaded": 0,
    "error": {
        "message": "The file is too big."
    }
}

 

三、PHP后端代码

由于是JSON格式,PHP后端肯定要先数组转JSON,代码可以这样写,如下:

 $image_str_json = json_encode([
                    "uploaded" => 1,
                    "fileName" => 'fujieace.png',
                    "url" => '/upload/fujieace.png',
                    "error" =>[
                        "message" => '文件大小超标,已自动压缩优化。'
                    ]
                ],320);
                echo $image_str_json;
付杰
  • ¥ 29.99元
  • 市场价:888元
  • ¥ 1999.9元
  • 市场价:20000元
  • ¥ 45.0元
  • 市场价:45.0元
  • ¥ 98.0元
  • 市场价:198.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: