Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Anzeigen von BLOB-Bildern aus der Mysql-Datenbank in einem dynamischen Div in HTML

1) Base64-Option

Arbeiten Sie mit einer einzigen Zeile, image/png für ein PNG-Bild und image/jpeg für ein jpg:

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

Beispiel:

<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) Spezielle Seite

Bei vielen großen Bildern auf derselben Seite ist base64 möglicherweise nicht die gute Wahl

Base64 ist cool, aber ein bisschen schwer (normalerweise ungefähr doppelt so wie die Binärdatei Wert codiert) und kann nicht zwischengespeichert werden vom Browser, da es ein Teil der Seite ist und keine Seite für sich (wie ein Bild).

In diesem Fall verwenden Sie am besten eine bestimmte PHP-Seite, um Ihr Bild anzuzeigen :

Verwenden Sie auf der Hauptseite anstelle von base 64:echo '<img src="image.php?id='.$id.'"/>'; mit der ID der Zeile, die Sie das Bild haben möchten.

Auf Ihrer image.php , für die Grundlagen sollten Sie Folgendes verwenden:

// << 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'];
}