【问题标题】:Loading images from outside the root directory从根目录外部加载图像
【发布时间】:2021-02-25 21:29:00
【问题描述】:

我想在我的网站上显示图片(基于 php,在 apache 上运行),但它们不在可公开访问的目录中,而是在根目录之外。

文件夹结构如下所示:

inc/
public/ <- accessible via webdomain
vault/
     /media/
           /2021/ <- images are located here

在public文件夹中是我的index.php,这里应该输出图片。

我的第一个想法是编写一个 php 文件,它会相应地输出内容。对我来说,图像的实际路径不公开也很重要。

你会怎么做?最明确的方法是什么?

【问题讨论】:

  • @NigelRen 哦,是的,刚刚更新。在我看来已经很晚了......谢谢

标签: php image directory serve


【解决方案1】:

使用魔术常量__DIR__,您将获得当前正在运行的 PHP 脚本的完整路径。但请注意:如果您包含另一个目录中的另一个 PHP 文件(例如 /subdir/script.php)并在其中请求 __DIR__,您将获得“/subdir”的完整路径。 使用 '../' 指向上方的 1 个目录,使用 '../../' 指向上方的 2 个目录,依此类推。
见:How to use __dir__?

因此,如果您的 index.php 文件(由浏览器通过域访问)位于 /inc/public/ 内

$path = __DIR__; // would contain '/rootdir/inc/public'
$pathToImages = $path . '/../../vault/media/2021/';
$imgContent = file_get_contents( $pathToImages . 'imagename.jpg' );

您可以创建一个像media.example.com 这样的子域,并将其链接到另一个处理您的媒体内容(如图像)的 PHP 脚本。所以你可以使用&lt;img src="https://media.example.com/?img=sample" /&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 2013-03-17
    • 2012-01-27
    • 2012-02-09
    相关资源
    最近更新 更多