2015-04-28 3 views
0

я набор повысил sonatamediabundlePNG-файл не может быть загружен сонатным-медиа-пакет

я могу загрузить JPG файл правильно, хотя, когда я пытаюсь загрузить файл в формате PNG.

ошибка показывает.

An error has occurred during the creation of item "n/a". 

мой config.yml выглядит следующим образом. Я думаю, что я правильно установил конфигурацию файла png. Есть ли какая-нибудь другая контрольная точка для загрузки png ??

sonata_media: 
    # if you don't use default namespace configuration 
    #class: 
    # media: MyVendor\MediaBundle\Entity\Media 
    # gallery: MyVendor\MediaBundle\Entity\Gallery 
    # gallery_has_media: MyVendor\MediaBundle\Entity\GalleryHasMedia 
    default_context: default 
    db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr 
    contexts: 
     default: # the default context is mandatory 
      providers: 
       - sonata.media.provider.dailymotion 
       - sonata.media.provider.youtube 
       - sonata.media.provider.image 
       - sonata.media.provider.file 

      formats: 
       small: { width: 100 , quality: 70} 
       big: { width: 500 , quality: 70} 

    cdn: 
     server: 
      path: /myapp/web/uploads/media # Its not good I need to change depending on server... 

    filesystem: 
     local: 
      directory: %kernel.root_dir%/../web/uploads/media 
      create:  false 
    providers: 
     image: 
      service: sonata.media.provider.image 
      resizer: sonata.media.resizer.simple # sonata.media.resizer.square 
      filesystem: sonata.media.filesystem.local 
      cdn:  sonata.media.cdn.server 
      generator: sonata.media.generator.default 
      thumbnail: sonata.media.thumbnail.format 
      allowed_extensions: ['jpg', 'png', 'jpeg'] 
      allowed_mime_types: ['image/pjpeg', 'image/jpeg', 'image/png', 'image/x-png'] 
+0

Предоставить журналы для вышеуказанной ошибки из каталога приложений/журналов –

+0

Как выглядит ваша функция загрузки? –

ответ

1

Вы должны проверить свою форму: configureFormFields()

Ошибка догонять есть:

// show an error message if the form failed validation 
     if (!$isFormValid) { 
      if (!$this->isXmlHttpRequest()) { 
       $this->addFlash('sonata_flash_error', $this->admin->trans('flash_create_error', array('%name%' => $this->admin->toString($object)), 'SonataAdminBundle')); 
      } 
     } 
1

У меня была такая же проблема, но с JPG, но для меня это оказалось что расширение gd для PHP не было настроено с поддержкой JPEG.

Если вы хотите увидеть, какие форматы изображений поддерживает расширение gd, проверьте вывод gd_info();

Я использую докер, поэтому в Dockerfile мне пришлось:

RUN apt-get install -y libpng-dev libjpeg-dev 

RUN docker-php-ext-configure gd --with-gd=shared \ --with-jpeg-dir=/usr/lib/x86_64-linux-gnu/

RUN docker-php-ext-install gd

Но в сущности, аке что у вас есть необходимые библиотеки установлены, что libjpg-dev (или libpng-dev, в зависимости от того, с чем у вас возникли проблемы), настройте gd расширение с --with-jpeg-dir параметр, указывающий на папку, в которой установлены библиотеки (по умолчанию это указано в команде докера), и она должна работать.

Смежные вопросы