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