2

我正在使用带有以下代码的 .htaccess 文件:

Order deny, allow
Deny from all
Allow from localhost

但是当我显示图像时,我只是在标签中放置了图像的链接,但图像没有显示出来。

如何显示图像但不允许直接访问它?有没有办法让我只复制文件的原始字节并显示它们?

4

2 回答 2

8

确保将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>
于 2013-08-30T03:43:23.930 回答
0

为图像发送适当的Content-Type标头,然后用于readfile()将字节流式传输到输出。

此外,如果您要为此使用 URL 中的文件路径,请务必先清理文件路径,以便/etc/passwd无法使用您的脚本读取例如。

于 2013-08-30T03:39:48.143 回答