【问题标题】:broken image symbol (PHP script)损坏的图像符号(PHP 脚本)
【发布时间】:2017-03-01 12:50:16
【问题描述】:

我有一个 mysql 数据库,其中存储了文本和图像 (blob) 信息。我想使用 PHP 脚本在页面中显示所有这些信息,我的问题是并非每个插入的数据都包含图像,所以......当 PHP 脚本运行并且数据库中存储有图像时,它会正确显示,但是当有没有存储图像它在浏览器上显示损坏的图像符号...我该如何解决这个问题,以便图像在数据库中存在时显示,并在不存在时避免损坏的图像符号?

我的代码如下:

echo '<body bgcolor="#ffffff">';
echo "<p style='color:white;background-color:blue;font-family:arial black;font-size:20;text-align:center'>". $row['title'] . "</p>";
echo '<center><img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'" width="300" eight="300"/></center>';
echo "<br>";
echo "<br><br>";
echo '<font size="3"><b><i>POR:' . $row['author'] . '</font></i></b><br>';
echo '<font size="3"><b><i>DATA: ' . $row['date'] . '</font></i></b><br><br>';
echo '<font size="3">' . $row['text'] . '</font><br>';
echo "<hr><hr>";

【问题讨论】:

    标签: php image


    【解决方案1】:

    尝试使用简单的 if 检查图像行中是否有任何内容。

    echo '<body bgcolor="#ffffff">';
    echo "<p style='color:white;background-color:blue;font-family:arial black;font-size:20;text-align:center'>". $row['title'] . "</p>";
    if($row['image']) {
        echo '<center><img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'" width="300" eight="300"/></center>';
    }
    echo "<br>";
    echo "<br><br>";
    echo '<font size="3"><b><i>POR:' . $row['author'] . '</font></i></b><br>';
    echo '<font size="3"><b><i>DATA: ' . $row['date'] . '</font></i></b><br><br>';
    echo '<font size="3">' . $row['text'] . '</font><br>';
    echo "<hr><hr>";
    

    【讨论】:

      【解决方案2】:

      试试这个:

      if($row['image'] != '')
      {
         echo '<center><img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'" width="300" eight="300"/></center>';
      }
      else
      {
          // show some text or a default "No image found"
      }
      

      说明:仅当数据库中有图像时才显示图像。

      【讨论】:

        【解决方案3】:

        您所要做的就是添加一个if statement,如下所示。

        if(isset($row['image']))
        {
           echo '<center><img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'" width="300" eight="300"/></center>';
        }
        

        如果有$row['image'] 变量指定的图像,这只会显示回显

        【讨论】:

        • 这将不起作用,因为 sql 结果会完全填充数组并且即使没有保存图像,图像索引也存在。
        猜你喜欢
        • 1970-01-01
        • 2013-02-10
        • 2016-05-12
        • 2011-04-05
        • 1970-01-01
        • 2018-04-01
        • 2014-10-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多