2017-05-26 16 views
1

私はSonataに統合されたIvoryCKEditorでSymfony 2プロジェクトを持っています。また、CKEditorプラグインのカップルをインストールしました。私は基本的な画像のアップロードを設定しましたが、私はドラッグアンドドロップ画像のアップロードも管理する必要があります。IvoryCKEditorBundleのアップロードイメージが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エラーで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. 

どうやら何かを発生します。

私の質問はuploadUrlのようになりますか?

+0

、あなたはsymfonyなしでそれをインストールしようとすると? – jjoselon

+0

何をインストールしますか? ckeditor? – lomboboo

+0

はい、IvoryCKEditorはあなたに多くの問題を与えます – jjoselon

答えて

1

uploadUrlには、ファイルのアップロードを処理するスクリプトのURLが含まれている必要があります。

だから、あなたはあなたがCKEditorバージョンはhttp://docs.ckeditor.com/#!/guide/dev_file_upload上の例を参照してください応答

を解析することを可能にするために、サーバー側(upload.phpファイル)にJSONレスポンスを作成する必要が 、config.uploadUrl = '/uploader/upload.php'ようuploadUrlを使用した場合。

{ 
    "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 Mediaバンドルが画像のアップロードを処理します。 CkeditorプラグインImage2は '' uploadUrl:/ admin/sonata/media/media/upload?provider = sonata.media.provider.image''を使用するので、 '' ivory_ck_editor''設定で指定しましたが、問題の記事 – lomboboo

+0

'uploadUrl'にリンクされた関数はJSONレスポンスを期待しているので、Sonata Mediaバンドルはファイルブラウザを介してイメージを扱うと思います。 'uploadUrl'の代わりに' filebrowserUploadUrl'を使うようにしてください – takeCAway

+0

私はカスタムUploadControllerを書くことになりました。私は本当にsf2バンドルのドキュメンテーションが貧弱だと気に入らない。しかし、助けてくれてありがとう – lomboboo