2017-05-26 144 views
1

我有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错误发生时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应该是什么样子?

+0

,如果你尝试没有symfony的安装呢? – jjoselon

+0

安装什么? CKEditor的? – lomboboo

+0

是的,IvoryCKEditor给你soo很多问题 – jjoselon

回答

1

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

所以,如果你使用像uploadUrlconfig.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("}"); 
+0

首先感谢你的回复。其次,Sonata媒体包处理图片上传。 Ckeditor插件Image2使用''uploadUrl:/ admin/sonata/media/media/upload?provider = sonata.media.provider.image'',所以我在''ivory_ck_editor''配置中指定了它,但是出现错误在问题 – lomboboo

+0

中描述我认为Sonata Media包通过文件浏览器处理图像,因为链接到'uploadUrl'的函数期待JSON响应。尝试使用'filebrowserUploadUrl'而不是'uploadUrl' – takeCAway

+0

我最终编写了自定义UploadController。我真的不喜欢那个sf2软件包的文档太差了。但谢谢你的帮助 – lomboboo