阻止直接访问图像,但允许灯箱(fancybox 2)

时间:2015-12-11 19:30:54

标签: php jquery fancybox-2

有一些建议,但我不知道应该使用哪一个,或者对我来说什么是最好的。一个听起来像你实际上将每个图像编码为一个字符串,然后显示。另一个听起来像设置一个用户/登录的东西,然后通过用户ID口述图像的位置,但我想避免这样复杂的事情。

基本上,我的所有照片都被组织成子文件夹,位于名为"照片"的主文件夹中。我使用我编写的PHP脚本扫描此目录并从子目录创建所有库(请参阅我关于此here的帖子)。

但问题是如果你查看来源,你会看到我所有照片的直接链接。有没有办法禁止访问所有照片,但仍然允许我的PHP脚本和fancybox进入他们?我对服务器端的东西不太了解,但我在学习。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

将图像编码为字符串是最安全的选项,因为只有您的脚本才能访问您的图像,您可以将它们放在Web根目录之外。编码本身并不那么困难:

$path = 'path/to/image.jpg';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);

echo '<img src="' . $base64 . '" />';