Я использую SonataMediaBundle с SonataAdminBundle и Symfony 2.3.
Когда я пытаюсь загрузить изображение через интерфейс администратора Sonata:
- Нажмите «Добавить новый» (
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
БД у меня есть соответствующая строка - Когда я просматриваю
web/uploads/media/default/0001/01/
с помощью Firefox, я вижу свое изображение - Соответствующая строка появляется в списке медиа (в админке)
Но:
- Изображение не отображается ни в списке медиа (вместо большого пальца квадратик), ни на странице редактирования изображения (
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
. И в БД не создается новая строка.
Часть решения
Что касается проблемы с изображением, я заметил, что путь, по которому смотрел администратор сонаты, был неправильным: я искал: 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, нет?
Правильно ли мое изменение? Если нет, то что мне делать?
В любом случае, это не решает мою проблему с загрузкой файлов! Есть идеи по этому поводу?