sql >> Databasteknik >  >> RDS >> Mysql

Visar BLOB-bild från Mysql-databas till dynamisk div i html

1) Base64-alternativ

Arbeta med en enda rad, image/png för en png-bild och image/jpeg för en jpg en :

echo '<img src="data:image/png;base64,'.base64_encode($blob).'"/>';

exempel:

<div style="background-color:black; text-align:center; padding: 5px;">
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAwBAMAAACh2TSJAAAALVBMVEUAAADtNTX////3n5/+9fX719f7zMz5tLTzfHzuQED//f31jY3ybGzxXV3wVFRaxp+rAAAAAXRSTlMAQObYZgAAALVJREFUOMut0rENAjEQRNHdC4kY0QBaAQUQX0QAFSAKIKQEKiAA6VqgIkriApuV1x7pQPz0aWwHljLMpZ0CRDBGoXmeghGYKFJsUo90giAImCgV5OJF+oOgKE48MlGgs2VLBIunWesw0a1ZHqF82c7GmmIfUSpgotOly29DFPFJFDEhkgIT/V5mZuvj6XofKrHU6vyI4u37IYi36aN4h5tL7PJyif1dvCgEpapzISbCTEj5R78BZq5A5Ldh2XYAAAAASUVORK5CYII">
</div>

2) Dedikerad sida

Med många stora bilder på samma sida kanske base64 inte är det bra valet

Base64 är cool, men lite tung (vanligtvis ungefär dubbelt som binären värde kodat) och kan inte cachelagras av webbläsaren eftersom den är en del av sidan, och inte en sida i sig själv (som en bild).

I det här fallet är det bästa att använda en specifik php-sida för att visa din bild :

På huvudsidan använd istället för bas 64:echo '<img src="image.php?id='.$id.'"/>'; med id för raden du vill ha bilden.

På din image.php , för det grundläggande bör du använda detta :

// << include the $pdo here
$query = $pdo->prepare("SELECT `content` FROM `adsubm` WHERE `id` = :id" );
$query->execute(array(':id'=>$_GET['id']));
$data = $query->fetch();

if(empty($data)))
    header("HTTP/1.0 404 Not Found");
else {
    header('Content-type: image/jpeg');
    echo $data['content'];
}



  1. mysql skär

  2. Vad är nytt i MariaDB MaxScale 2.4

  3. MySQL:Fel när databasen släpptes (fel 13; fel 17; fel 39)

  4. Trigga innan du tar bort MySql