从mysql在php中显示图像

时间:2015-03-30 08:46:27

标签: php mysql

我搜索了解决方案,但他们没有工作! 我试图显示我的数据库中的图像[在Eventss表中]该行被称为图像,它是BLOB格式。 这是为人们显示数据的页面,我专注于php知道,我将在确定如何显示图像后修复if条件。

<?php 
mysql_connect("***", "***", "***")
or die("<p>Error connecting to database: " . mysql_error() . "</p>");

mysql_select_db("project")
or die("<p>Error selecting the database ectoday: " . mysql_error() . "</p>");

session_start();
$select_query = "SELECT * FROM Eventss WHERE id=". $_SESSION["event_id"];
$result = mysql_query($select_query);
if($result) 
    { 
        if (mysql_num_rows($result) > 0)
        {   
            while($row = mysql_fetch_assoc($result))
            {
                echo $row['title']. "<br>";
                if ($row['image'] !== NULL)
                {
                    $poster =  $row['image'];
                    echo $row['content']. "<br>";
                    echo $row['event_date']. "  [" . $row['event_time']. "]"."<br>";
                    echo $row['location']. "<br>";
                }
                else
                {
                echo $row['content']. "<br>";
                echo $row['event_date']. "  [" . $row['event_time']. "]"."<br>";
                echo $row['location']. "<br>";
                }

            }   
        }
        else
        {
            echo "Sorry, there is no more data for this event";
        }
    }
 ?>
 <html>
 <head><head>
 <body>
    <img src="<?php echo $poster; ?>" width="175" height="200" />
  </body>
 </html>

2 个答案:

答案 0 :(得分:0)

如果它存储在BLOB中,则它很可能是base64编码的,并且该字段包含实际的图像数据,而不是对文件系统上的图像的引用。您必须将其写入文件并使用标准img标记显示它,否则......

<img src="data:image/jpeg;base64, HereGoesYourBase64fromBLOB..." />

...但请注意,bae64编码的图像数据可能不是最适合带宽的解决方案。将静态资源存储在文件系统中会更好。

答案 1 :(得分:0)

假设您没有存储该图像的路径,但是图像内容本身并且它是jpg(您可以更改为png或您拥有的任何类型)。如果是这样,请使用src的数据URI语法:

<img src="<?php 
echo 'data:image/jpg;base64,'.base64_encode($poster); ?>" width="175" height="200" />