Aiuto !!!!!!, sono nella .....
E' da un pò di tempo che sono sopra questo problema, al quale non sono riuscita a dare una risposta.
Il mio codice PHP deve estrarre da un db di mssql un campo di tipo blob.
L'estazione dei dati è riuscita, il problema è la visualizzazione del campo blob in una pagina di drupal che visualizza simboli starni , tipo rombi con un punto interrogativo all'interno.
perchè dico che il problema è drupal??
Perchè ho provato lo stessso codice php in un progetto nuovo che non utilizza drupal e l'immagina contenuta all'interno del campo blob si visualizza senza problemi.
Questo è il codice che estrae e visualizza lìimagine tramite una echo di php ma non funziona o meglio non visualizza l'immagine
$conn = sqlsrv_connect($serverName, $connInfo);
if($conn)
{
// echo "Connection established.";
}
else
{
//echo "Connection could not be established.";
die(print_r(sqls_errors(),true));
}
$sql = "SELECT ADOTTATI.Ado_Nome, ADOTTATI.Ado_Cognome, ADOTTATI.Ado_EstensFoto, ADOTTATI.Ado_Foto
FROM ADOTTATI
WHERE '5680' = ADOTTATI.Ado_Codice ";
//echo $sql;
$param = array(1,"some data");
$stmt = sqlsrv_query($conn,$sql, $param);
if($stmt==false)
{
die(print_r(sqlsrv_errors(), true));
}
$array = sqlsrv_fetch_array($stmt);
drupal_add_http_header('Content-type','image/jpg');
echo $array['Ado_Foto'] ;
Io di solito uso la funzione unserialize() per estrarre i dati da campi blob ma non so se fa al caso tuo...
http://www.php.net/manual/en/function.unserialize.php
Anziché
echo $array['Ado_Foto'] ;
Farei:
$foto = unserialize($array['Ado_Foto']);
Restituisce $foto come un array contenente il campo blob decodificato. Al suo interno dovrebbe essere contenuto il path dell'immagine che è stata inserita.
REDNODE - Sviluppo siti web e cosulenze Drupal