如何在Symfony2控制器中获取文件的绝对路径?

Tom*_*Tom 2 symfony

我想发送带附件的电子邮件,因此我需要pdf文件的绝对路径.

我在控制器中尝试了流动的代码:

$this->get('templating.helper.assets')->getUrl('MyDoc.pdf', 'doc');
Run Code Online (Sandbox Code Playgroud)

但这回归:

/bundles/MyBundle/doc/MyDoc.pdf?v=1
Run Code Online (Sandbox Code Playgroud)

这是没有用于Web访问的域的路径.但我需要启动磁盘根目录的真实路径,如下例所示.这怎么可能?谢谢.

/home/MyAccount/public_html/web/src/company/MyBundle/Resources/public/doc/MyDoc.pdf
Run Code Online (Sandbox Code Playgroud)

fel*_*ins 7

$this->get('templating.helper.assets')资产助手是关于HTTP URI,而不是目录路径.但是,您可以轻松地获得正确的绝对目录Web路径,如下所示:

$appPath = $this->container->getParameter('kernel.root_dir');
$webPath = realpath($appPath . '/../web');
Run Code Online (Sandbox Code Playgroud)

$webPath 应该返回这样的东西:

/home/martins/www/symfony-project/web
Run Code Online (Sandbox Code Playgroud)