【问题标题】:Displaying an image in PHP using name stored in database使用存储在数据库中的名称在 PHP 中显示图像
【发布时间】:2013-04-28 22:34:07
【问题描述】:

我试图通过从数据库中获取图像名称来显示文件夹“上传”中的图像。

   while($row = mysqli_fetch_array($result))
  {
  
  $pic =  $row['image']; 

  echo   $row['item'] ;
  echo  $row['location'];
  echo $row['description'];
  echo  $row['forum'];
  echo $row['datetime'];
  echo $row['username'];

 ?>


</br>


 <img src="upload/<?php echo  $pic ?>"/> 
 <?php echo  $row['image'];  } ?>
 "upload/<?php echo  $pic ?>"
 
 </body>
 </html>

如您所见,它会显示除 img src 之外的所有内容。

这是我的数据库(忽略作为测试的 BLOB)。我似乎无法弄清楚我要去哪里错了。 谢谢

【问题讨论】:

  • 可能是一个愚蠢的问题,但您的上传文件夹与您的 projectviewposted.php 文件位于同一目录中?
  • 查看源代码(或使用 firebug)查看图像标签并查看那里给出的 src 是什么。
  • 听起来像是相对路径问题。
  • 当您尝试打开localhost/project/projectviewposted.php/upload/happyball (1).jpg 时发生了什么?
  • 上传文件夹和php文件在同一个文件夹,当我转到你上面发布的地址时,它会显示相同的信息

标签: php sql image


【解决方案1】:

我的建议是将完整的相对路径存储在数据库中,如下所示:

uploads/folder/file.jpg

我首选的 MySQL 字段类型是“varchar(255)”,您在 PHP 代码中的回显将如下所示:

echo '<img src="'. $row['image'].'" />';

【讨论】:

    【解决方案2】:

    您正在尝试在 while 循环之外打印图像源。 while循环只会在$row为空时退出,所以$row['image']也为空。

    【讨论】:

    • 如果你仔细看代码,主要的 img src 在循环内,最后是循环的结束 }。
    • 好的,我现在看到了。我认为这说明了代码的可读性;)
    【解决方案3】:

    1) 查看源代码(或使用 firebug)查看图像标签并查看那里给出的 src 是什么。

    2)试试url:“http://{LOCAL}/projects/projectviewposted.php/upload/happyball(1).jpg”看看能不能打开图片

    【讨论】:

    • 当我尝试完整的 url 时它显示相同的信息
    • 坚决反对使用绝对URL路径,这是我们更改域等时出现问题的主要原因。根据我的个人经验,我可以建议相对 URL 路径。
    • @h4cky:我只提到了完整的路径,所以他可以测试图像是否可以使用完整的 url 打开!!!
    • 我知道,无意冒犯。我只是想说这不是一个好习惯:)
    【解决方案4】:

    试试这个

    <img src="upload/<?php echo $pic; ?>"/> 
     <?php echo  $row['image'];  } ?>
     "upload/<?php echo  $pic ?>"
    

    否则请记下文件夹路径的链接。可能是文件夹路径不正确。

    希望对你有帮助

    【讨论】:

      【解决方案5】:

      你可以试试:

        while($row = mysqli_fetch_array($result))
        {
      
            $pic =  $row['image']; 
      
            echo $row['item'] ;
            echo $row['location'];
            echo $row['description'];
            echo $row['forum'];
            echo $row['datetime'];
            echo $row['username'];
      
            echo '<br /> 
                  <img src="upload/'.$pic.'"/> 
                  '.$row['image'];
        }
      

      【讨论】:

        【解决方案6】:

        好吧,3 天后我想通了……我的标题位置不正确! ../project/projectviewposted.php/ 最后一个愚蠢的额外斜线!! 感谢您的帮助和建议!

        【讨论】:

          猜你喜欢
          • 2015-10-26
          • 2012-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多