Può capitare di dover estrapolare un'immagine da un database per visualizzarla in una pagina web. Il seguente codice visualizza semplicemente l'immagine, ma è una buona base di partenza!
<?
//connessione al database
mysql_connect('localhost', 'utente_db', 'password_db') or die('Connessione non riuscita: ' . mysql_error()); if(!mysql_select_db('nome_db')) die('Selezione database fallita!');
//query per selezionare il campo in cui è salvata l'immagine
$query = "SELECT image FROM tabella WHERE id = 1";
$risultato = mysql_query($query) or die('Query non valida: ' . mysql_error());
$tmp = mysql_fetch_array($risultato);
//costruisco la pagina. cambiare il tipo di file a seconda delle esigenze
header('Content-Type: image/jpeg');
// invio il contenuto del file
echo $tmp['image'];
?>
Commenti
Insomma, si tratta di organizzare tutta la parte delle informazioni su un unica risorsa.
questioni organizzative, sicuramente le immagini salvate nel database sono poco "comode" ma hanno il vantaggio di essere aggregate agli altri dati.
Visto che mi è capitato di dover estrarre delle immagini da un database mi è sembrato utile scrivere il metodo.
copia esattamente in un file quello che ho scritto fra i tag php e poi richiamalo dal browser. Vedrai l'immagine visualizzata nel browser. Ovviamente dovrai modificare i parametri di connessione e la query in base alle tue esigenze
provo a fare delle ipotesi:
- guarda i log di php, magari c'è qualche errore di sintassi;
- l'imagine che hai inserito nel database di che tipo è (jpg, png, ecc...)? Deve combaciare con quello che scrivi nella riga "Header...";
- ricorda che l'immagine non deve essere inserita sotto forma di percorso ma devi proprio caricare l'immagine in un campo blob del database.
Grazie per l'aiuto