1

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

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

4

1 回答 1

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);
        }
    }
}
?>
于 2010-09-30T08:25:12.870 回答