我正在使用 Symfony2 框架,并且我在 doc 文件夹中放置了 2 个 pdf 文件(在应用程序和 Web 文件夹旁边)
在我的 Controller 中我写了这个:
$path = $this->get('kernel')->getRootDir() . "/../doc/" . $filename . '.pdf';
我调试项目,并且在变量 $path 内有:
c:/wamp/www/myproject/app/../doc/myfile.pdf
采用此路径并将其放入 Windows 系统资源管理器中我可以打开该文件。 (所以看起来不错)
但是在 Controller 内部,我在 $path 上调用的任何函数都会返回 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 还检查路径是否存在。因此它只能用于路径的现有部分。
关于symfony - Symfony2中如何获取文件的绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29075429/