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

How to get the absolute path of a file in Symfony2?

我正在使用 Symfony2 框架,我在 doc 文件夹中放置了 2 个 pdf 文件(在 app 和 web 文件夹旁边)

在我的控制器中我写了这个:

$path = $this->get('kernel')->getRootDir() . "/../doc/" . $filename . '.pdf';

我调试了项目,我在变量 $path 中有:

c:/wamp/www/myproject/app/../doc/myfile.pdf

采用此路径并将其放入 windows 系统资源管理器中我可以打开该文件。 (所以好像还不错)

但是在控制器内部,无论我在 $path returns null 上调用什么函数,例如 mime_content_type() 或 basename(),如果我写 file_get_content($path),它说该文件不存在。

有什么想法吗?

$path = realpath($this->get('kernel')->getRootDir() . "/../doc/" . $filename . '.pdf');

http://php.net/manual/en/function.realpath.php

编辑:realpath 还检查路径是否存在。所以它只能用于路径的现有部分。