我的网站根目录有一个图片目录。它包括应该是公共的,公共子目录中的图像,以及应该仅对登录用户可用的私有目录中的图像。问题是登录用户可以复制img URL,将其提供给非用户,现在他们可以访问。
我已经设置了.htaccess文件以防止热链接。我怀疑我需要创建一个服务器映像的控制器,并检查服务该映像的用户凭据b4,如果用户尝试访问私有映像,则使用.htaccess将用户发送给该控制器?这是最佳做法吗?有人可以发一些代码来帮助我更好地想象。
答案 0 :(得分:2)
在对用户进行身份验证后,您始终可以使用PHP从隐藏路径中流式传输图像。创建一个名为getimage.php的控制器,您可以调用它:
<img src="getimage?imagename.jpg" />
然后在控制器中:
<?php
class Getimage extends Controller{
function index(){
//code to authenticate user goes here then...
header("Content-type: image/jpeg");
if(file_exists(hiddenpath.$_GET['imgid'])){
$img_handle = imagecreatefromjpeg(hiddenpath.$_GET['imgid'] ) or die("");
ImageJpeg($img_handle);
}
}
}
?>