SonataAdminBundle と Symfony 2.3 で SonataMediaBundle を使用しています。
Sonata Admin インターフェイスから画像をアップロードしようとすると、次のようになります。
- [新規追加] (
app_dev.php/admin/sonata/media/media/create
)をクリックします。 - 「画像」(
app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.image&context=default
)をクリック - ファイルを参照し、
image.jpg
「作成」をクリックします - これにより、編集ページが表示されます。
Item "image.jpg" has been successfully created.
本当に:
- フォルダー
web\uploads\media\default\0001\01
には、画像ファイルと 3 つの親指があります。 media__media
DBテーブルには、対応する行があります- Firefoxでブラウジングする
web/uploads/media/default/0001/01/
と、自分の画像が表示されます - 対応する行がメディア リストに表示されます (管理パネル内)。
しかし:
- 画像は、メディア リスト (親指の代わりに四角形があります) にも画像編集ページ (
app_dev.php/admin/sonata/media/media/3/edit?provider=sonata.media.provider.image&context=default
)にも表示されません。
ファイルの場合、さらに悪い:
- [新規追加] (
app_dev.php/admin/sonata/media/media/create
)をクリックします。 - 「画像」(
app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.file&context=default
)をクリック - ファイルを参照し、
document.zip
「作成」をクリックします
これにより、エラー 500: が生成されますThe file "" does not exist
。また、DB に新しい行は作成されません。
解決策の一部
画像の問題については、sonata 管理者が探しているパスが適切ではないことに気付きました。http://myserver/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg
それ以外のhttp://myserver/myproject/web/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg
どうやら、これは config.yml のこの部分によるものです (SonataMedia のドキュメントで定義されています)。
sonata_media
cdn:
server:
path: /uploads/media
私が置き換えたもの:
sonata_media
cdn:
server:
path: /myproject/web/uploads/media
そして、それは機能します。しかし、これをハードコードするのは良い考えではないと思います。Sonata Doc でこのように書かれているのには十分な理由があると思いますよね?
私の変更は正しいですか?そうでない場合は、どうすればよいですか?
いずれにしても、ファイルのアップロードの問題は解決しません! この点について何か考えはありますか?