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

Viser BLOB-billede fra Mysql-database til dynamisk div i html

1) Base64 mulighed

Arbejd med en enkelt linje, image/png for et png-billede og image/jpeg for en jpg en :

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

eksempel :

<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) Dedikeret side

Med mange store billeder på samme side er base64 måske ikke det gode valg

Base64 er cool, men lidt tung (normalt omkring dobbelt som den binære værdi kodet) og kan ikke cachelagres af browseren, da den er en del af siden, og ikke en side i sig selv (som et billede).

I dette tilfælde er det bedste at bruge en specifik php-side til at vise dit billede :

På hovedsiden skal du bruge i stedet for base 64:echo '<img src="image.php?id='.$id.'"/>'; med id'et for den linje, du vil have billedet.

På din image.php , til det grundlæggende skal du bruge dette :

// << 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. Dvalekriterier for datoer

  2. Få tabel-id efter indsættelse med ColdFusion og MySQL

  3. Hvordan genererer man automatisk et unikt id i SQL som UID12345678?

  4. Hvordan håndterer jeg enkelte anførselstegn i en SQL-forespørgsel i PHP?