2010-09-18 73 views
1

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

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

回答

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