2013-06-07 15 views
5

Ho provato a collegare l'immagine archiviata (dati blob) in MySQL DB a PHP, ma l'unica cosa che ho ottenuto è stata un'intera pagina di caratteri. Questo è quello che ho fatto:Dati BLOB come attributo SRC del tag immagine

$query = "SELECT image FROM uploads WHERE id = {$id}"; 
$image_array = mysql_query($query, $connection); 
$row = mysql_fetch_array($image_array); 
$image = $row['image']; 

echo $image; 
// echo base64_decode($content); 

Questo visualizza i dati grezzi come è memorizzato. Vorrei collegarlo a un tag HTML o almeno visualizzarlo a pagina, dove visualizzo molte altre cose sull'intestazione ('Content-type: image/png'); non è una soluzione per me.

Qualche consiglio?

+0

Potete trovare il vostro esatto SO rispondere [qui] (http: // StackOverflow .com/domande/13225726/i-need-my-php-page-to-show-my-blob-image-da-mysql-database) – NullPointer

risposta

8

per visualizzare l'immagine in modo corretto è sufficiente mettere un'intestazione con Content-type: image/png prima echo

header("Content-type: image/png"); 
echo (base64_decode($row['image'])); 

Se si desidera inserire invece in un tag di immagine è sufficiente per utilizzare questo codice

echo '<img src="data:image/png;base64,' . $row['image'] . '" />'; 
1

È necessario fornire intestazioni appropriate, altrimenti la pagina non saprà cosa si sta inviando.

// define results into variables 
$name=mysql_result($result,0,"file_name"); 
$size=mysql_result($result,0,"file_size"); 
$type=mysql_result($result,0,"file_type"); 
$content=mysql_result($result,0,"file_stream"); 

// give our picture the proper headers...otherwise our page will be confused 
header("Content-Disposition: attachment; filename=$name"); 
header("Content-length: $size"); 
header("Content-type: $type"); 
echo $content; 
0

È necessario utilizzare qualcosa chiamato "Immagine incorporata". Utilizzare questo codice per visualizzare l'immagine in una pagina, asssuming la variabile $ immagine contiene dati codificati in base64:

<img src="data:image/png;base64,<?php echo $image; ?>" alt="Larry" /> 

Fonte: https://en.wikipedia.org/wiki/Data_URI_scheme

Problemi correlati