Anzeigen von als BLOBs in MySQL gespeicherten Bildern
Beim Versuch, als BLOBs in einer Datenbank gespeicherte Bilder abzurufen, stoßen Sie auf Schwierigkeiten, sie korrekt anzuzeigen. Ihr Code ruft die Daten ab und übergibt sie an ein Skript, das den Header auf image/jpeg setzt und das Bild wiedergibt. Allerdings sehen Sie im Browser ein Bildsymbol, aber nicht das Bild selbst.
Um dieses Problem zu beheben, wird empfohlen, einen modifizierten Ansatz zu verwenden:
Bilder in die Datenbank einfügen
// Retrieve image data from a temporary file $image = file_get_contents($_FILES['images']['tmp_name']); // Prepare an SQL statement and bind the image parameter $query = "INSERT INTO products (image) VALUES(?)"; $stmt = $db->prepare($query); $stmt->bind_param('s', $image); // Execute the statement $stmt->execute();
Bilder aus dem abrufen und anzeigen Datenbank
// Prepare an SQL statement and bind the ID parameter $sql = "SELECT * FROM products WHERE id = ?"; $stmt = $db->prepare($sql); $stmt->bind_param('s', $id); // Execute the statement and retrieve the result $stmt->execute(); $result = $stmt->get_result(); $row = $result->fetch_array(); // Encode the image data as base64 and embed it in an HTML element echo '<img src="data:image/jpeg;base64,' . base64_encode($row['image']) . '" />';
Dieser überarbeitete Ansatz sollte es Ihnen ermöglichen, als BLOBs in MySQL gespeicherte Bilder effektiv anzuzeigen. Indem Sie den Bildparameter binden und ihn als Base64 innerhalb des HTML-Elements kodieren, können Sie die Bilddaten korrekt abrufen und darstellen.
Das obige ist der detaillierte Inhalt vonWarum wird mein MySQL-BLOB-Bild nicht richtig angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!