PHP从外部文档根插入图像

时间:2014-08-06 21:23:33

标签: php

好的,所以我对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

2 个答案:

答案 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

然而,此解决方案存在一些缺点:

  • 通过PHP 转发图像需要花费时间和性能
  • 该脚本可能可以利用,让邪恶的人检索服务器上的任何文件

您可以直接访问托管图片。