sql >> Database >  >> RDS >> Mysql

mySQL blob-afbeeldingen afdrukken?

Je hebt hier eigenlijk twee problemen:

  1. Als $thumb bevat de binaire gegevens van de afbeelding, zal de browser deze niet begrijpen, tenzij u de browser vertelt welke gegevens het zijn (bijv. image/jpg ).

  2. U moet de browser vertellen waar de gegevens zich bevinden.

Stel dat u een afbeelding wilt maken met de duim op die pagina:

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

De src attribuut vertelt de browser waar deze de gegevens van de afbeelding kan vinden. Het wordt dus gebruikt om probleem 2 op te lossen. Het verwacht een Uniform Resource Locator (URI).

Dus hoe krijg je de $thumb in een URI? Er zijn meerdere manieren om dat te doen, waaronder de ene gekoppeld in een reactie .

Als de afbeelding echter niet erg groot is en u deze niet specifiek in de cache hoeft te plaatsen (bijvoorbeeld de HTML moet in de cache worden opgeslagen, maar niet de duimafbeelding), kunt u gebruik maken van een data: URI-schema :

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

U kunt die variabele dan uitvoeren als de src waarde van kenmerk:

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

Ik hoop dat dit nuttig is.

Volledig antwoord:

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. Hoe krijg ik een lijst met maanden tussen 2 bepaalde datums met behulp van een zoekopdracht?

  2. SUPER privilege(s) voor deze operatie

  3. SELECTEER alle records die 30 dagen oud zijn

  4. MYSQL - Turks karakter