IvoryCKEditorBundle uploadimage无法解析JSON响应
我有Symfony 2项目与IvoryCKEditor集成到索纳塔。还安装了几个CKEditor插件。我已经配置了基本的图片上传功能,但我还需要管理拖放图片上传功能。IvoryCKEditorBundle uploadimage无法解析JSON响应
上传图片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。
所以,如果你使用像uploadUrl
config.uploadUrl = '/uploader/upload.php'
, 你必须创建在您的服务器端(upload.php的文件)的JSON响应允许的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("}");
首先感谢你的回复。其次,Sonata媒体包处理图片上传。 Ckeditor插件Image2使用''uploadUrl:/ admin/sonata/media/media/upload?provider = sonata.media.provider.image'',所以我在''ivory_ck_editor''配置中指定了它,但是出现错误在问题 – lomboboo
中描述我认为Sonata Media包通过文件浏览器处理图像,因为链接到'uploadUrl'的函数期待JSON响应。尝试使用'filebrowserUploadUrl'而不是'uploadUrl' – takeCAway
我最终编写了自定义UploadController。我真的不喜欢那个sf2软件包的文档太差了。但谢谢你的帮助 – lomboboo
,如果你尝试没有symfony的安装呢? – jjoselon
安装什么? CKEditor的? – lomboboo
是的,IvoryCKEditor给你soo很多问题 – jjoselon