png файл не может быть загружен sonata-media-bundle

Я установил sonatamediabundle

Однако я могу правильно загрузить файл 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']

person whitebear    schedule 28.04.2015    source источник
comment
Предоставьте журналы для вышеуказанной ошибки из каталога app/logs   -  person M Khalid Junaid    schedule 28.04.2015
comment
как выглядит ваша функция загрузки?   -  person Nawfal Serrar    schedule 28.04.2015


Ответы (2)


Вы должны проверить свою форму: 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'));
            }
        }
person Reyela    schedule 28.04.2015

У меня была такая же проблема, но с 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, указывающим на папку, в которую установлены библиотеки (по умолчанию используется команда docker выше), и это должно работать.

person dbakiu    schedule 15.03.2017