我目前使用的是SonataAdminBundle和SonataMediaBundle 我的媒体包文件有问题,因为我的pdf文件没有使用其名称保存,而是使用md5或其他格式保存。
例如:
我不想通过这个来获取我的pdf:
9a0b7a35131e23f91666324562c52f08b7cb6604.pdf
但名称(iphone.pdf
)。
我想知道是否可以:
或
答案 0 :(得分:3)
在你的Twig中使用它,这样你就可以下载它的名字:
{{ path('sonata_media_download', {'id': (your media object here|sonata_urlsafeid)}) }}
要查看它而不下载,我正在寻找它,如果我找到了什么,我会回来的。
祝你好运!答案 1 :(得分: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官方文档中找到特殊助手(我忘了帮助者的名字)。