0

我已经设置了奏鸣曲媒体包

但是,当我尝试上传 png 文件时,我可以正确上传 jpg 文件。

它显示错误。

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']
4

2 回答 2

4

我有同样的问题,但使用 JPG。对我来说,原来 PHP 的gd扩展没有配置 JPEG 支持。

如果您想查看您的 gd 扩展支持哪些图像格式,请检查gd_info()的输出;

我正在使用 docker,所以在 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,具体取决于您遇到的问题),使用--with-jpeg-dir参数配置gd扩展,指向安装库的文件夹(默认是上面 docker 命令中的文件夹),它应该可以工作。

于 2017-03-15T16:13:52.940 回答
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'));
            }
        }
于 2015-04-28T10:52:21.593 回答