SonataMediaBundle: файлы/изображения не найдены

Я использую SonataMediaBundle с SonataAdminBundle и Symfony 2.3.

Когда я пытаюсь загрузить изображение через интерфейс администратора Sonata:

  1. Нажмите «Добавить новый» (app_dev.php/admin/sonata/media/media/create)
  2. Нажмите на "Изображение" (app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.image&context=default)
  3. Просмотрите файл image.jpg и нажмите «Создать».
  4. Это приводит меня на страницу редактирования, где я вижу: 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)

С файлами еще хуже:

  1. Нажмите «Добавить новый» (app_dev.php/admin/sonata/media/media/create)
  2. Нажмите на "Изображение" (app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.file&context=default)
  3. Просмотрите файл 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, нет?

Правильно ли мое изменение? Если нет, то что мне делать?

В любом случае, это не решает мою проблему с загрузкой файлов! Есть идеи по этому поводу?


person Blacksad    schedule 27.02.2014    source источник
comment
У меня точно такая же проблема. Вы уже нашли решение?   -  person Jan Šimek    schedule 20.12.2014
comment
есть ли у целевого каталога достаточные права на запись для apache или nginx?   -  person ibasaw    schedule 11.01.2016


Ответы (2)


Файл не существует

Как объясняется здесь, это вызвано недостаточным ограничением разрешенного размера загружаемого файла в php.ini (увеличьте upload_max_filesize и post_max_size).

Затем вы, вероятно, столкнетесь с другой ошибкой, говорящей о том, что тип zip-файла не разрешен, поэтому добавьте это в свой config.yml:

sonata_media:   
    providers:
        file:
            allowed_extensions: ['zip']
person Jan Šimek    schedule 20.12.2014

sonata_media
    cdn:
        server:
            path: /myproject/web/uploads/media

Это рабочий вариант. Я не думаю, что есть проблема жестко закодировать это.

person Kaizoku Gambare    schedule 16.02.2016