PHP 应用程序中不显示图像 - 路径和权限问题

问题描述 投票:0回答:1

我正在开发 PHP Web 应用程序,但在管理仪表板中显示图像时遇到问题。图像存储在目录

/var/www/html/online_shop/public/photo_product
中,但它们没有显示在页面上。

以下是我的设置和问题的摘要:

目录结构:

  • 图像位于
    /var/www/html/online_shop/public/photo_product
  • 图像的 URL 路径是
    /photo_product/

PHP 代码: 在我的

admin_dashboard.php
文件中,我尝试使用以下代码显示图像:

<td><img src="/photo_product/<?php echo htmlspecialchars(basename($row['image'])); ?>" alt="Product Image" style="max-width: 80px; height: auto;"></td>

采取的故障排除步骤:

  • 直接 URL 访问: 我尝试直接在浏览器中访问图像 URL(例如,
    http://localhost/online_shop/public/Screenshot%202024-06-30%20074157.png
    ),但图像未加载。
  • 文件权限:我确保目录和图像文件具有正确的权限(目录为755,文件为644)并且归
    www-data
    所有。
  • 文件存在: 验证指定目录中是否存在图像文件,并且其文件名与数据库条目匹配。
  • Apache 配置: 检查 Apache 配置和 .htaccess 规则,确保不存在阻止访问图像目录的限制。
  • 浏览器开发者工具:在控制台或网络选项卡中未发现相关错误。

附加信息:

  • Apache Web 服务器版本:[Apache/2.4.58 (Ubuntu)]
  • PHP版本:[8.3.8]
  • 错误日志不表明任何与图像服务相关的问题。

以下是针对反馈和更正信息的简明回复:


感谢您指出这一点。对于造成的混乱,我深表歉意。这是更清晰的更新:

  1. Web 根目录澄清:Web 根目录是
    /var/www/html/online_shop/public/
    ,因此图像的根相对 URL 确实应该是
    /photo_product/...
  2. Apache 日志条目:之前的日志条目被错误地包含在内,并且与图像问题无关。我会把它们删除。

我将更新问题以准确反映这些要点。感谢您的耐心和帮助。


此回复承认错误,澄清网络根目录,并承诺使用正确的信息更新问题。 谁能帮我弄清楚为什么图像不显示?我还应该采取任何其他步骤来解决此问题吗?

谢谢!


php html image apache permissions
1个回答
0
投票

假设您的照片位于 /var/www/html/online_shop/public/photo_product

您希望照片显示的管理页面位于 /var/www/html/online_shop/admin/admin.php

您可以在 admin.php 文件中使用此代码

 <img src='../public/photo_product/xyz.jpg' alt=''>
© www.soinside.com 2019 - 2024. All rights reserved.