限制图像访问Codeigniter

时间:2010-09-18 20:18:03

标签: .htaccess codeigniter privacy

我的网站根目录有一个图片目录。它包括应该是公共的,公共子目录中的图像,以及应该仅对登录用户可用的私有目录中的图像。问题是登录用户可以复制img URL,将其提供给非用户,现在他们可以访问。

我已经设置了.htaccess文件以防止热链接。我怀疑我需要创建一个服务器映像的控制器,并检查服务该映像的用户凭据b4,如果用户尝试访问私有映像,则使用.htaccess将用户发送给该控制器?这是最佳做法吗?有人可以发一些代码来帮助我更好地想象。

1 个答案:

答案 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);
        }
    }
}
?>