我有 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
时,发生错误
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/