【发布时间】:2011-08-27 05:00:33
【问题描述】:
我想要什么
我正在创建一个系统,当用户上传图像时,它会转到文件夹 images,其中有图像的两个副本,一个拇指和一个更大的。
现在,当用户上传图片时,它会在 MySQL 数据库中插入一行的同时完成,其中图片获取一个 id,并且该行包含一个值,该值确定图片是否可供公众使用 (1只有拇指可用,两个都用 2 个)以及图像的所有者(管理员)。
我不想做的是,如果用户试图通过访问图像的 URL 来访问图像,并且数据库中的值表明它不应该是公开的,并且该用户的会话不是图片的所有者(管理员未登录)应该说图片未找到或访问被拒绝。
我的想象
如果可以用 php 完成,我想像这样:
//User tries to go to URL "images/IMAGE-ID_thumb.jpg"
if($img['access'] >= 1 || $_SESSION['admin_ID'] == $img['owner_ID']) {
//Show image thumb
}
else {
//Access denied
}
我也许可以将图像隐藏在 .htaccess 受保护的文件夹中,创建一个接受 URL 变量的 imgae_get.php,查看图像是否可用,如果可用则加载图像。我只是想避免必须反编译/重新编译映像和其他服务器耗电过程。
我的问题是,我可以这样控制图像吗?有没有办法让 php 脚本显示为它在内部加载的图像? 还是有可能比通过 PHP 有其他/更好的方法? (也许是 Apache?)任何建议都非常感谢。
【问题讨论】:
标签: php apache file access-control