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

标签 symfony path

我正在使用 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/

相关文章:

php - 如何收集我的 symfony 项目的所有路由来创建站点地图?

css - @font-face 不适用于任何浏览器

php - Symfony2 : Where to inject translation_domain in Form Component

mysql - 将 Symfony 网站连接到 Amazon 关系数据库

Symfony2.5.0 全新安装 - 找不到 "GET/"的路由,404 未找到 - NotFoundHttpException

c - Vanilla C fopen 到相邻文件夹的路径

linux - 可执行文件可以动态解析其在文件系统上的位置或其实际的 "resting place"与用户的工作目录吗?

node.js - 如何在 Windows 上的 Node.js 中获取文件的大小写精确路径?

algorithm - 无向图转化为路径的最小成本并集

configuration - 有没有办法在 Symfony2 中指定 Doctrine2 Entitymanager 实现类?