javascript - IvoryCKEditorBundle uploadimage无法解析JSON响应

标签 javascript php json symfony ckeditor

我有 Symfony 2 项目,其中 IvoryCKEditor 集成到了 Sonata 中。还安装了几个 CKEditor 插件。我已经配置了基本的图像上传,但我还需要管理拖放图像上传。

上传图片documentation表示配置 uploadUrl 属性。

config.extraPlugins = 'uploadimage';
config.uploadUrl = '/uploader/upload.php';

我的app/config/config.yml看起来像这样:

ivory_ck_editor:
    default_config: default
    configs:
        default:
            extraPlugins: "uploadimage,image2,uploadwidget,widget,widgetselection,lineutils,notificationaggregator,notification,filetools"
            uploadUrl: "/admin/sonata/media/media/upload?provider=sonata.media.provider.image&responseType=json"
            filebrowserBrowseRoute: admin_sonata_media_media_browser
            filebrowserImageBrowseRoute: admin_sonata_media_media_browser
            filebrowserImageBrowseRouteParameters:
                provider: sonata.media.provider.image
            filebrowserUploadRoute: admin_sonata_media_media_upload
            filebrowserUploadRouteParameters:
                provider: sonata.media.provider.file
            filebrowserImageUploadRoute: admin_sonata_media_media_upload
            filebrowserImageUploadRouteParameters:
                provider: sonata.media.provider.image
    plugins:
        image2:
            path:     "/ckeditor/plugins/image2/"
            filename: "plugin.js"
        uploadimage:
            path:     "/ckeditor/plugins/uploadimage/"
            filename: "plugin.js"
        uploadwidget:
            path:     "/ckeditor/plugins/uploadwidget/"
            filename: "plugin.js"
        widget:
            path:     "/ckeditor/plugins/widget/"
            filename: "plugin.js"
        widgetselection:
            path:     "/ckeditor/plugins/widgetselection/"
            filename: "plugin.js"
        lineutils:
            path:     "/ckeditor/plugins/lineutils/"
            filename: "plugin.js"
        notificationaggregator:
            path:     "/ckeditor/plugins/notificationaggregator/"
            filename: "plugin.js"
        notification:
            path:     "/ckeditor/plugins/notification/"
            filename: "plugin.js"
        filetools:
            path:     "/ckeditor/plugins/filetools/"
            filename: "plugin.js"

uploadUrl/admin/sonata/media/media/uploadprovider=sonata.media.provider.image&responseType=json 时,发生错误 enter image description here

Location: plugins/filetools/plugin.js
Description: An error occurred when parsing the upload response. Text could not be parsed to JSON.
Additional data:
responseText: Upload response text.

显然 JSON 响应有问题,但文件上传到目录

我的问题是 uploadUrl 应该是什么样子?

最佳答案

uploadUrl 必须包含处理文件上传的脚本的 URL。

所以,如果您使用像 config.uploadUrl = '/uploader/upload.php' 这样的 uploadUrl, 您必须在服务器端创建 JSON 响应(upload.php 文件)以允许 ckeditor 解析响应

请参阅 http://docs.ckeditor.com/#!/guide/dev_file_upload 上的示例.

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

您必须获取文件名和要在服务器上保存文件的特定 URL,并创建涉及的响应。

参见(java服务器端示例):

out.println("{");
out.println(" \"uploaded\": 1,");
out.println("\"Filename\":" + "\"" + fileName+"\",");
out.println(" \"url\":" + "\"" + url +"\"" );
out.println("}");

关于javascript - IvoryCKEditorBundle uploadimage无法解析JSON响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44208146/

相关文章:

javascript - 无法在 MacOS High Sierra v10.13.2 上安装 Angular cli

php - 从 PHP 插入时在 MongoDB 上执行 JS

php - 更新 Symfony 2.1(颠覆)

c++ - Qt Json十进制值

c# - 在 C# 中使用 Newtonsoft 反序列化嵌套的 JSON 对象

javascript - LinkedIn 共享网址在 IE 11 中不接受法语内容

javascript - JsPDF - 无法读取未定义的属性 'charAt'

java - 将 JSON 响应解析为列表

javascript - 将 foreach 数据传递到模态中

javascript - Node.js 中的 Hash_hmac 等效项