好的,所以我对PHP不太熟悉,而且我一直在寻找一种方法来访问文档根目录之外的图像文件。我知道这个问题有很多答案,但实际上并没有帮助我。
所以到目前为止我所拥有的是这样的文件夹结构(忽略奇数文件名):
-img
-imagez.php
-logo.php
-public_html
-files.php
我将此代码放在files.php
:
<?php include('/home/byonexco/img/imagez.php'); ?>
如果我从浏览器访问files.php
,我会看到imagez.php
的内容,正如预期的那样。
我的问题是,我希望能够对文件logo.png
做同样的事情。文件夹img
无法公开访问,因此我知道我必须使用PHP调用该图像。
如果有人访问文件logo.png
,如何在页面上显示files.php
?
答案 0 :(得分:0)
由于图片无法公开访问,您需要通过PHP获取图像,然后使用正确的标题输出图像
$image = file_get_contents('path/to/image.png';
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
答案 1 :(得分:0)
您可以编写一个非常简单的脚本,如
<?php
header('Content-Type: image/png');
if (strpos($_GET['img'], '..') === false) // check for quackery
readfile('../img/' . $_GET['img']);
并像
一样访问它/img.php?img=logo.png
然而,此解决方案存在一些缺点:
您可以直接访问托管图片。