我正在使用带有以下代码的 .htaccess 文件:
Order deny, allow
Deny from all
Allow from localhost
但是当我显示图像时,我只是在标签中放置了图像的链接,但图像没有显示出来。
如何显示图像但不允许直接访问它?有没有办法让我只复制文件的原始字节并显示它们?
确保将embedded.png保存在与此示例源相同的文件夹中。
<?php
function data_uri($file, $mime)
{
$contents = file_get_contents($file);
$base64 = base64_encode($contents);
return ('data:' . $mime . ';base64,' . $base64);
}
?>
<html>
<h1>Embedded Image:-</h1>
<img src="<?php echo data_uri('embedded.png','image/png'); ?>" alt="Embedded image" />
</html>
为图像发送适当的Content-Type
标头,然后用于readfile()
将字节流式传输到输出。
此外,如果您要为此使用 URL 中的文件路径,请务必先清理文件路径,以便/etc/passwd
无法使用您的脚本读取例如。