奏鸣曲媒体包 - 按名称获取pdf文件或在更新时更改文件名



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

例如:

  • 媒体表
  • 编号 : 1
  • 名称 : 苹果手机.pdf
  • provider_reference : 9a0b7a35131e23f91666324562c52f08b7cb6604.pdf

我不想通过以下方式获取我的 pdf:

9a0b7a35131e23f91666324562c52f08b7cb6604.pdf

但有它的名字(iphone.pdf)。

我想知道是否有可能:

  • 按名称获取 PDF 文件?

  • 使用特定名称保存我的 PDF 文件?
在你的

Twig中使用它,这样你就可以下载它的名字:

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

要在没有下载的情况下看到它,我正在寻找那个,如果我找到什么,我会回来的。

祝你好运!

如果你想在PHP代码中获取文件的公共URL,你可以使用这样的东西(来自我的应用程序\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官方文档中找到特殊的助手(我忘记了助手的名字)。

最新更新