使用slim和php访问目录root之外的文件

时间:2016-09-16 02:36:04

标签: php .htaccess model-view-controller twig slim

目前我的文件结构如下:

├── README.md
├── app
├── classes
├── composer.json
├── composer.lock
├── database
├── public
├── templates
├── users
└── vendor

users文件夹的内部,我有与登录用户的用户名相关的文件夹,每个文件夹都有自己定义的文件和文件夹。

我遇到的问题是我无法下载users目录中的文件。目前,我通过移动users目录中的public目录来使用我的代码,但是存在明显的安全漏洞。我如何制作它,以便我的用户目录从根目录向上一层,如此处所示,但仍然可以被public目录访问?

我已经尝试过使用RewriteRule users/ ../users/,但似乎无效。我能够通过PHP访问users目录,而不是public文件夹中的前端控制器。

这是我的第一个"真实"使用Slim进行项目,所以我对整个前端控制器/ mvc类型的东西都很新。任何帮助都会很棒,谢谢!

1 个答案:

答案 0 :(得分:1)

在您的路由逻辑或控制器中,您需要验证用户是否可以访问所述文件,然后很可能使用PHP来提供该文件,因为它无法在Web路径中访问。

在PHP中,您可以设置正确的HTTP标头,并使用readfile()向最终用户提供文件。

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