Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyświetlanie obrazu BLOB z bazy danych Mysql do dynamicznego div w html

1) Opcja Base64

Pracuj z jedną linią, image/png dla obrazu png i image/jpeg dla jednego jpg :

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

przykład :

<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) Dedykowana strona

Przy wielu dużych obrazach na tej samej stronie base64 może nie być dobrym wyborem

Base64 jest fajny, ale nieco ciężki (zwykle około dwa razy jako plik binarny zakodowana wartość) i nie można ich zapisać w pamięci podręcznej przez przeglądarkę, ponieważ jest częścią strony, a nie samą stroną (jak obraz).

W takim przypadku najlepiej jest użyć określonej strony php do wyświetlenia obrazu :

Na stronie głównej zamiast bazy 64 użyj:echo '<img src="image.php?id='.$id.'"/>'; z identyfikatorem linii, w której chcesz uzyskać obraz.

Na twoim image.php , dla podstawowych powinieneś użyć tego :

// << 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy jest jakiś powód, aby nadal używać wielkości węża do tabel i kolumn bazy danych?

  2. Jak znaleźć odrębne kolumny w zagnieżdżonym podzapytaniu w SQL?

  3. Wstaw do wielu tabel w jednym zapytaniu

  4. Jakiś sposób na wybór bez powodowania blokowania w MySQL?

  5. MySqlConnectionStringBuilder — Połącz z certyfikatami