【问题标题】:How to show images in a webpage from root directory in PHP Codeigniter?如何在 PHP Codeigniter 的根目录中显示网页中的图像?
【发布时间】:2017-07-29 22:54:07
【问题描述】:

我用 Codeigniter 创建了一个网站,用户可以选择在那里上传他们的照片。由于照片是个人的,我认为将它们保存在网络目录中并不安全。结果,我将它们保存在像/var/www/images 目录这样的根目录中。现在,如何获取网页中的图片?

【问题讨论】:

  • 你遇到了什么问题?

标签: php image codeigniter


【解决方案1】:

错误的选择亲爱的学习者。您的图像文件夹需要您的代码和浏览器可以访问,才能通过图像路径呈现该图像。例如

这是我的项目的图像目录。我在我网站的不同页面中使用所有这些图像。有些是由我的代码动态选择的。

现在,通过将图像放在 www 文件夹中,您将创建 http://images/ 的路径,这是任何 PHP 指南都不推荐的。您的图像文件夹应该在您的项目根目录中而不是外部。

如果您想禁用查看文件夹,只需添加空 index.html 文件,但如果您尝试保护图像不被查看,那么您的网站也将无法找到它们image protection in codeigniter

【讨论】:

    【解决方案2】:

    代码将与您创建的一样安全。那么你所做的很好,网络服务器仍然需要访问图像。

    在忽略其余代码或您想要实现的目标的同时,您可以尝试从您的 webroot 引用图像,或者可能创建一个符号链接。

    另外,我会尝试将图像放在 AWS 等其他地方。

    【讨论】:

      【解决方案3】:

      如果您担心安全问题,您可以尝试构建一个 ImagesController 来检查图像是否存在、用户是否有权查看它并在之后渲染它。 上传的图像还应该在数据库中的表内有一些参考行,可以有一个列来指定它是否应该是公共的(也尝试根据它所代表的内容将它们分类到文件夹 - 用户个人资料图片、产品图片等)。 我知道这有点工作,但这就是我要做的方式。 您可以在线查看返回图像的控制器示例。

      祝你的项目好运。

      【讨论】:

        猜你喜欢
        • 2017-10-09
        • 1970-01-01
        • 1970-01-01
        • 2018-02-08
        • 2018-06-03
        • 2019-11-17
        • 2018-03-08
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多