3

我目前使用 SonataAdminBundle 和 SonataMediaBundle。
我的媒体包文件有问题,因为我的 pdf 文件不是用它的名称保存的,而是用 md5 或其他格式保存的。

例如:

  • 媒体表
  • 编号:1
  • 名称:iphone.pdf
  • 提供者参考: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);
}

如果您需要树枝中的链接,您可以在 SonataMedia 官方文档中找到特殊的助手(我忘记了助手的名称)。

于 2016-02-02T17:57:03.993 回答