破碎的图像符号(PHP脚本)

时间:2017-03-01 12:50:17

标签: php image

我有一个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>";

3 个答案:

答案 0 :(得分:0)

尝试使用简单的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>";

答案 1 :(得分:0)

试试这个:

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"
}

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

答案 2 :(得分:0)

您只需添加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']变量

指定的图像,则仅显示回显