Laravel - 保护图像文件夹免受Web访问

时间:2013-03-18 10:36:43

标签: image upload laravel protection

我正在我的项目中执行上传图片功能。这里我将我的文件保存在公共文件夹(public / img / myfiles /)中。如果管理员用户未登录,我想限制文件访问。(即)

如果我把网址设为

https://domain/img/myfiles/filename.jpg

它应该重定向到登录页面

https://domain/login

怎么做?我不想将特定图像限制为关联用户。由于用户是管理员,我想让他们完全访问图像文件夹。

1 个答案:

答案 0 :(得分:2)

您可以尝试在.htaccess文件中添加一行,通过PHP脚本路由所有图像请求,如果不是管理员,只需重定向到登录页面,否则返回请求的图像。这是一个想法,它看起来如何。

.htaccess档案:

RewriteRule ^img/myfiles/(\w+)\.([a-z]{3,4})$ image.php?name=$1&type=$2 [L]

image.php档案:

if(Auth::user()->role == 'admin') {
    header("Content-type: image/" + $_SESSION['type']);
    readfile("/path/to/image/" + $_SESSION['name'] + '.' + $_SESSION['type']);
else {
    header("Location: http://mysite.com/login");
}