2

我创建了一个只包含 zip 文件的上下文。我需要能够在这种情况下只允许 zip 文件扩展名。我能够创建一个扩展到 FileProvider 的自定义提供程序,但在设置此提供程序允许的特定扩展时遇到问题。

我关注了这篇文章:sonata-media-bundle-how-to-write-custom-provider

当我将配置设置为以下内容时:

providers:
    custom:
        allowed_extensions: ['zip']
        allowed_mime_types: ['application/zip','application/x-zip']

Symfony 抛出一个错误:

Fatal error: Uncaught exception 'Symfony\Component\Config\Definition\Exception\InvalidConfigurationException' with message 'Unrecognized options "custom" under "sonata_media.providers"'
4

1 回答 1

1

在浏览媒体包代码后设法找到它。

允许的扩展和 mime 类型是提供者的 6 和 7 个参数。以下是我的 service.yml 文件的副本,用于声明自定义提供程序服务。

services:
sonata.media.provider.custom:
    class: Application\Sonata\MediaBundle\Provider\CustomProvider
    tags:
        - { name: sonata.media.provider }
    arguments:
        - sonata.media.provider.custom
        - @sonata.media.filesystem.local
        - @sonata.media.cdn.server
        - @sonata.media.generator.default
        - @sonata.media.thumbnail.format
        - ['zip', 'foo']
        - ['application/zip', 'foo/bar']
于 2014-09-03T16:25:42.693 回答