微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从根目录外部加载图像

如何解决从根目录外部加载图像

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

文件夹结构如下:

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

文件夹public是我的index.PHP,这里应该输出图片

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

你会怎么做?最清晰的方法是什么?

解决方法

使用魔术常量 __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 脚本。所以你可以使用 <img src="https://media.example.com/?img=sample" />

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?