簡體   English   中英

無法使用PHP從MySQL數據庫加載圖像

[英]Can't load image from MySQL database with PHP

我正在創建一個小節中的文章列表,但是在從MySQL數據庫中獲取圖像時遇到了麻煩。 我遵循了本指南,了解如何在MySQL中存儲圖像http://forums.mysql.com/read.php?20,17671,27914 這是我正在使用的代碼。

<?php
    $result = mysql_query("SELECT * FROM heroes");
    while ($row = mysql_fetch_array($result)) {
    echo "<article>";
    if($row{'Type'} == 'Strength') {
        echo "<span class='strength'></span>";
    } elseif ($row{'Type'} == 'Agility') {
        echo "<span class='agility'></span>";
    } else {
        echo "<span class='intelligence'></span>";
    }
    echo "<div>";
    echo "<header>"."<h2>"."<a href='javascript:;'>".$row{'Name'}."</a>"."</h2>"."</header>";

    if($row{'Image'} != NULL) {
        ?>
        <img src="<?php base64_decode($row{'Image'}); ?>" alt="hero-image" width="200" height="300" />
        <?php
    } else {
        echo '<img src="images/no-image.png" alt="hero-image" width="200" height="300" />';
    }
    echo "</div>";
    echo "</article>";
    }
?>

替換您的圖像源

'data:image / gif; base64,'。base64_decode($ row {'Image'});

也使用適當的mime代替gif

您的代碼有些錯誤:

  1. 您調用了mysql_fetch_array,但是使用了用於對象的花括號,但是您有一個數組。
  2. 您調用base64_decode。 這意味着您將無法使用HTML獲取二進制內容。 如果以二進制形式存儲,則必須使用base64_encode對其進行編碼。
  3. <img>src值必須是URL,而不是內容本身。 您可以使用Data-URL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM