这就是解决这个问题的方法(你的第二个想法的变化)。
在我们的文档根目录之外创建一个名为images的目录。
在文档根目录中,创建一个名为image.php的文件,该文件将充当调度程序,首先检查用户是否具有权限,然后加载图像,否则抛出如下错误(示例):
<?php
// Start PHP Session
session_start();
// Get Request Param
$image_file = isset($_GET['file_name']) ? basename($_GET['file_name']) : '';
// Check if current user has permission here, e.g. using Session?
if ($_SESSION['can_view_image'])
{
// Check If The Image File Exists
if (file_exists('../images/'. $image_file))
{
// Get File Ext
$file_ext = trim(end(explode('.', $image_file)));
// Set Content Type Header Based On File Ext
switch ($file_ext)
{
case 'jpg':
case 'jpeg':
header('Content-Type: image/jpeg');
break;
case 'png':
header('Content-Type: image/png');
break;
}
// Load Image
readfile($image_file);
}
else
{
// Error
exit('Requested image file does not exists on this server.');
}
}
else
{
// Error
exit('You do not have permission to view this image');
}
?>
用法如下所示:
<img src="/image.php?file_name=some_important_chart.jpg" />
有权限的用户会看到图片,没有权限的用户会看到破损的图片。