如何解决从根目录外部加载图像
我想在我的网站上显示图像(基于 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 举报,一经查实,本站将立刻删除。