前一段时间我问了这个问题并得到了一个我认为可行的答案,但我仍然有问题。也许这是我做错了但我仍然没有这个。
我想限制对整个目录的访问。该目录中包含图像和pdf文件。我需要创建一个指向pdf文档的链接,并嵌入一个锚标记,即图像。有人告诉我使用标题。使用标题立即输出适用于pdf文档的内容,但我必须嵌入来自同一目录的3个图像,这不起作用,因为标题在html之前输出图像,这是正确的行为。
我需要一种方法将图像分配给变量,这样我就可以在输出html后将其嵌入到我需要的位置。有什么想法吗?
这是我上一个问题的链接。 How to restrict viewing files within a directory
答案 0 :(得分:0)
将图片移至主机的公共文档根目录之外,或使用.htaccess限制对其进行访问,例如
<FilesMatch "\.(gif|png|jpe?g)$">
Order Allow,Deny
Deny from all
</FilesMatch>
使用PHP脚本发送图像,这将检查用户会话并仅在用户登录时发送图像。
//... your session checking routine just like in other scripts
if (!$logged) {
//show error
exit();
}
//Simple extention-to-mimetype map:
$mimetypes = array(
'.jpg' => 'image/jpeg'
'.jpeg'=> 'image/jpeg'
'.pdf' => 'application/pdf'
//add other extensions if needed
);
$file = basename($_GET['file']); //preventing tricks with ../../anypath/anyfile
$ext = substr($file, strrpos($file, '.'));
if (file_exists($images_dir . $file) && isset($mimetypes[$ext]) ) {
header('Content-Type: ' . $mimetypes[$ext]);
echo file_get_contents($images_dir . $file);
} else {
//show error
}