3

現在、SonataAdminBundle と SonataMediaBundle を使用しています。
PDF ファイルがその名前ではなく、md5 または別の形式で保存されているため、メディア バンドル ファイルに問題があります。

例えば:

  • メディアテーブル
  • ID: 1
  • 名前:iphone.pdf
  • provider_reference : 9a0b7a35131e23f91666324562c52f08b7cb6604.pdf

これでpdfを取得したくありません:

9a0b7a35131e23f91666324562c52f08b7cb6604.pdf

しかし、その名前 ( iphone.pdf)。

次のことが可能かどうか知りたいです。

  • 名前でpdfファイルを取得しますか?

また

  • 特定の名前で PDF ファイルを保存しますか?
4

2 に答える 2

2

これを Twig で使用して、その名前でダウンロードできるようにします。

{{ path('sonata_media_download', {'id': (your media object here|sonata_urlsafeid)}) }}

ダウンロードせずに見たくて探してます、何かあったらまた来ます。

幸運を!

于 2016-02-26T17:01:07.127 に答える
1

PHP コードでファイルのパブリック URL を取得する場合は、次のようなものを使用できます (私の Application\Sonata\MediaBundle\Helper\MediaHelper のコード)

public function getPublicUrl(Media $media, $format = 'reference')
{
    if (!$media) {
        return '';
    }

    /** @var ImageProvider $provider */
    $provider = $this->container->get($media->getProviderName());
    $format = $provider->getFormatName($media, $format);

    return $provider->generatePublicUrl($media, $format);
}

twig でリンクが必要な場合は、SonataMedia の公式ドキュメントで特別なヘルパーを見つけることができます (ヘルパーの名前は忘れました)。

于 2016-02-02T17:57:03.993 に答える