如何在php应用程序的Web根目录之外显示图像?

马努:

我有使用Apache服务器Linux的PHP Web应用程序。出于安全原因,我将文档和图像保留在Web根目录之外。用户登录后,如何显示这些图像。

军团士兵:

默认情况下,PHP可以访问Web根目录之外的文件,除非受open_basedir指令限制(或安全模式,但希望您不在此笼中)。

在VirtualHost配置中插入open_basedir限制通常是个好习惯您可以指定多个目录,:在Linux和;Windows 用分隔

php_admin_value open_basedir /var/www/s/stage:/usr/share/php:/your/dir

要访问这些文件,请使用绝对路径或相对于PHP文件位置的路径。(因此,您必须../达到上述水平)。

此外,还要确保将要写入其中的目录分配给Web服务器用户并具有写入权限。

否则,您有第二种选择:

在www目录中,创建一个“ image.php”文件,其内容类似于:

<?php
  header('Content-Type: image/png');
  readfile("../img/" . $_GET['img']);
?>

并用

<img src="image.php?img=myimage.png" />

请注意,您的PHP文件不应该那么简单:)因为您可能想处理多种图像格式(并为其提供正确的标头),所以请检查恶意文件的路径/包含的内容(您不想使用$ _GET,而不验证/清除输入),额外的缓存等,等等。

但这应该使您对如何解决问题有所了解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular 如何在应用程序根目录之外显示内容

在Angular中的应用程序根目录之外显示托管视图

如何在我的应用程序根目录显示swagger-ui?

Silex-如何访问我的Web根目录和应用程序根目录

框架如何获取Web根目录之外的图像/ css

Spring Boot:如何在Spring Boot应用程序中显示系统目录中的图像?

安装Web应用程序后更改文档根目录

从Spring Controller获取Web应用程序根目录

如何使Netbeans将Java Web应用程序部署到Tomcat的根目录(例如/)而不是/ MyProject?

如何在 Apache 上的站点根目录挂载 django 应用程序?

如何在虚拟网址中更改应用程序根目录

如何在破折号Web应用程序上显示wordcloud图像

相对链接到asp.net应用程序根目录之外的文件?

如何在Java应用程序中显示图像

如何在TForm的边界之外显示控件(例如TListbox)

Magento如何在身体标签之外显示块

如何在固定父级之外显示 :before 元素

Service Fabric应用程序的根目录

如何找到WPF应用程序的根路径并在根目录上创建文件夹以保存图像?

如何在烧瓶应用程序的根目录中添加文件,以便可以在 localhost:5000/file 上访问它?

如何在根目录之外的Express / Node中显示图片(通过USB密钥)

如何在 IDE 之外运行 ASP.NET Web 应用程序 (.NET Framework)?

为什么在此FXML应用程序中未显示TreeView根目录?

如何在Android对话框外显示图像?

如何在PHP项目根目录之外链接JS外部文件?

如何在jsp中显示图像,该图像位于服务器的根目录中

如何在React-native中将图像从画廊复制到应用程序的安装目录

如何在项目根目录之外访问静态文件?

Azure B2C Web 应用程序 - 如何在 Web 应用程序会话生命周期之外使用刷新令牌进行身份验证