我正在使用带有以下代码的.htaccess文件:
Order deny, allow
Deny from all
Allow from localhost
但是当我显示图像时,我只是在标签中放置了图像的链接,但图像没有显示出来。
如何显示图像但不允许直接访问图像?有没有办法让我只复制文件的原始字节并显示它们?
答案 0 :(得分:6)
请务必将 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>
答案 1 :(得分:0)
为图像发送适当的Content-Type
标头,然后使用readfile()
将字节流式化为输出。
此外,如果您要在URL中使用文件路径,请务必首先清理文件路径,以便例如使用您的脚本无法读取/etc/passwd
。