sql >> Databáze >  >> RDS >> Mysql

tisk obrázků blob mySQL?

Zde máte v zásadě dva problémy:

  1. Jako $thumb obsahuje binární data obrázku, prohlížeč jim nebude rozumět, pokud prohlížeči neřeknete, jaká data to jsou (např. image/jpg ).

  2. Musíte prohlížeči sdělit, kde jsou data.

Řekněme, že chcete vytvořit obrázek s palcem na této stránce:

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

src atribut říká prohlížeči, kde může najít data obrázku. Používá se tedy k řešení problému 2. Očekává Uniform Resource Locator (URI).

Jak tedy získat $thumb do URI? Existuje několik způsobů, jak to udělat, včetně jednoho propojeno v komentáři .

Pokud však obrázek není příliš velký a nepotřebujete jej konkrétně uložit do mezipaměti (např. HTML by měl být uložen do mezipaměti, ale nikoli miniaturní obrázek), můžete použít data: Schéma URI :

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

Poté můžete tuto proměnnou vypsat jako src hodnota atributu:

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

Doufám, že vám to pomůže.

Kompletní odpověď:

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. mysqli insert - ale pouze pokud nejde o duplikát

  2. Jak detekovat znaky UTF-8 ve sloupci zakódovaném Latin1 - MySQL

  3. Limit HQL v dotazu podvýběru

  4. jak nakonfigurovat konfigurační soubor hibernace pro sql server