sql >> Database teknologi >  >> RDS >> Mysql

mySQL blob billeder udskrift?

Du har grundlæggende to problemer her:

  1. Som $thumb indeholder billedets binære data, vil browseren ikke forstå det, medmindre du fortæller browseren, hvilke data det er (f.eks. image/jpg ).

  2. Du skal fortælle browseren, hvor dataene er.

Lad os sige, at du vil oprette et billede, der viser tommelfingeren på denne side:

<td><img src="..." alt="thumb"></td>

src attribut fortæller browseren, hvor den kan finde billedets data. Så det bruges til at løse problem 2. Det forventer en Uniform Resource Locator (URI).

Så hvordan får du $thumb ind i en URI? Der er flere måder at gøre det på, inklusive den ene linket i en kommentar .

Men hvis billedet ikke er særlig stort, og du ikke behøver at have det specifikt cachelagret (f.eks. skal HTML'en cachelagres, men ikke tommelfingerbilledet), kan du gøre brug af en data: URI-skema :

$thumbSrc = 'data:image/jpg;base64,'.base64_encode($thumb);

Du kan derefter udskrive den variabel som src attributtens værdi:

<td><img src="<?php echo $thumbSrc; ?>" alt="thumb"></td>   

Håber dette er nyttigt.

Fuldstændig svar:

echo "<table>";
    echo "<tr class ='tablehead'><td>Name</td><td>Location</td><td>Review</td><td>Image</td><td>Thumb</td></tr>";
    while ($row = mysql_fetch_array($query))
    {   
        echo "<tr>";
            echo "<td>" . $row['user_fname'] . "</td>";
            echo "<td>" . $row['user_location'] . "</td>";
            echo "<td>" . $row['user_review'] . "</td>";                    
            echo '<td><img src="data:image/jpg;base64,', base64_encode($row['user_thumb']), '" alt='thumb'></td>'; 
            echo '<td><img src="data:image/jpg;base64,', base64_encode($row['user_image']), '" alt='image'></td>';
        echo "</tr>";
    }
echo "</table>";


  1. Repræsentation af sparsomme data i PostgreSQL

  2. Sådan fungerer ACOS() i MariaDB

  3. MySQL oprette lagrede procedure syntaks med afgrænser

  4. Hvad er bedre for din big data-applikation, SQL eller NoSQL?