Kri*_*our 8 php apache file access-control
我正在建立一个系统,当用户上传图像时,它会进入文件夹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
}
Run Code Online (Sandbox Code Playgroud)
我可以隐藏.htaccess受保护文件夹中的图像,制作一个接受URL变量的imgae_get.php,查看图像是否可用,如果是,则加载图像.我只是想避免去/重新编译图像和其他服务器耗电过程.
我的问题是,我可以像这样控制图像吗?有没有办法让PHP脚本显示为内部加载的图像?或者可能有一些其他/更好的方式比通过PHP?(Apache也许?)任何建议都非常感谢.
//get_image.php
//Do session/mysql checks as outlined in your code above.
header("Content-Disposition: filename=$imagename.$filetype");
header("Content-type: $mimetype");
readfile(PROTECTED_IMAGE_FOLDER . "$imagename.$filetype");
Run Code Online (Sandbox Code Playgroud)