Sonata媒体包 - 按名称获取pdf文件或更新时更改文件名

问题描述 投票:3回答:2

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

例如:

  • 媒体表
  • id:1
  • 名称:iphone.pdf
  • provider_reference:9a0b7a35131e23f91666324562c52f08b7cb6604.pdf

我不想通过这个得到我的pdf:

9a0b7a35131e23f91666324562c52f08b7cb6604.pdf

但它的名字(iphone.pdf)。

我想知道是否有可能:

  • 按名称获取pdf文件?

要么

  • 用特定名称保存我的pdf文件?
symfony sonata-admin sonata sonata-media-bundle
2个回答
2
投票

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

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

为了看到它而没有下载,我正在寻找它,如果我找到了什么,我会回来的。

祝好运!


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官方文档中找到特殊助手(我忘了帮助者的名字)。

© www.soinside.com 2019 - 2024. All rights reserved.