1) Option Base64
Travailler avec une seule ligne, image/png
pour une image png et image/jpeg
pour un jpg :
echo '<img src="data:image/png;base64,'.base64_encode($blob).'"/>';
exemple :
<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) Page dédiée
Avec de nombreuses grandes images sur la même page, la base64 n'est peut-être pas le bon choix
Base64 est cool, mais un peu lourd (généralement environ deux fois le binaire valeur encodée) et ne peut pas être mis en cache par le navigateur car il fait partie de la page, et non une page en soi (comme une image).
Dans ce cas, le mieux est d'utiliser une page php spécifique pour afficher votre image :
Sur la page principale utiliser à la place de la base 64 :echo '<img src="image.php?id='.$id.'"/>';
avec l'identifiant de la ligne dont vous voulez l'image.
Sur votre image.php
, pour la base vous devriez utiliser ceci :
// << 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'];
}