Php 从web根目录外部显示图像(public_html)
背景:Php 从web根目录外部显示图像(public_html),php,html,image,Php,Html,Image,背景: 我有一个文件夹,其中包含名为uploads的图像或位于网站根目录之外的图像。(公共_html之外) 我正在尝试打印里面的图像,比如image.php 操作规则: 我正在尝试在.htaccess中不使用别名mod_rewrite来完成此操作 在中间没有显示黑色背景和图像(我不希望在浏览域名.COM/MIG.PNG < /代码>时,就像下面提到的图片的例子。 不使用其他页面,并将其作为get传递 我的尝试: 我检查了很多问题,其中一个是,另一个是 根据上面提出的当前问题和其他
- 我有一个文件夹,其中包含名为uploads的图像或位于网站根目录之外的图像。(公共_html之外)
- 我正在尝试打印里面的图像,比如image.php
操作规则:
- 我正在尝试在.htaccess中不使用别名mod_rewrite来完成此操作
- 在中间没有显示黑色背景和图像(我不希望在浏览<代码>域名.COM/MIG.PNG < /代码>时,就像下面提到的图片的例子。
- 不使用其他页面,并将其作为get传递
我的尝试:
- 我检查了很多问题,其中一个是,另一个是
- 根据上面提出的当前问题和其他教程,我提出了
这:
"/>
然而,这不是我正在寻找的,也不是我试图做的。同样,我试图将其视为一个普通的图像src,因为它将用于配置文件图片或其他用途 任何帮助都将不胜感激。提前感谢!此:
echo file_get_contents($image);
?>
<img src=" <? echo $image; ?> "/>
echo文件获取内容($image);
?>
"/>
错误的原因有几个。首先,您不能以这种方式将原始图像内容与HTML标记混合使用。另外,src
指定图像的URL,而不是原始内容
您可以将echo
file\u get\u contents($image);
和相关代码移动到单独的文件中,即image.php
,然后在src
中引用它,并将图像名称作为参数传递(即image.php?img=foo.jpg
)-请注意,如果您做得不对,您将对其开放)。或者,您可以尝试使用assrc
参数,并以这种方式直接传递原始内容 将image.php更改为
<?php
function image() {
$location = dirname($_SERVER['DOCUMENT_ROOT']);
$image = $location . '/public_html/images/banned.png';
return base64_encode(file_get_contents($image));
}
?>
在另一个要显示该图像的文件中,假设test.php:
<?php
include("image.php");
?>
<img src='data:image/png;base64,<?= image(); ?>' >
' >
我认为问题在于您发送的内容类型,您是否尝试删除它?我尝试删除它,但它显示十六进制代码,如“�PNG IHDR“当我尝试bin2hex时,页面显示一个空白页面。�PNG
是一个PNG文件,您正在使用内容类型:image/jpeg
@Fred ii-是的,我从我编码的文件中将其更改为image/PNG,但忘了从这里更改,对不起。这让问题现在变得不清楚了,$file
,它的值是多少?除非你的意思是$image
?
<?php
include("image.php");
?>
<img src='data:image/png;base64,<?= image(); ?>' >