2016-04-18 6 views
0

das Bild ist bereits in der Datenbank gespeichert. Ich mache eine PHP-Seite, so dass ich alle Daten sehen kann, die in meiner MS SQL-Datenbank gespeichert sind. es zeigte nur den Dateinamen des Bildes und nicht das eigentliche BildWie zeigt man das Bild mit Hilfe von PHP

<?php 
 
$serverName = "kwekwe\SQLEXPRESS"; 
 
$connectionInfo = array("Database"=>"customerdb", "UID"=>"dbadmin", "PWD"=>"kwe[enter image description here][1]"); 
 
$conn = sqlsrv_connect($serverName, $connectionInfo); 
 
if($conn === false) { 
 
    die(print_r(sqlsrv_errors(), true)); 
 
} 
 
//declare the SQL statement that will query the database 
 
    $query = "SELECT * FROM Customer_Details"; 
 

 

 
//execute the SQL query and return records 
 
    $result = sqlsrv_query($conn, $query) 
 
     or die(print_r(sqlsrv_errors(), true)); 
 

 
//Show results in table 
 

 
$o = '<table border=1 id="myTable"> 
 
     <thead> 
 
     <tr> 
 
     <th>Customer ID</th> 
 
     <th>Customer Name</th> 
 
\t \t <th>Image</th> 
 
     </tr> 
 
     </thead><tbody>'; 
 

 
     while ($record = sqlsrv_fetch_array($result)) 
 
      { 
 
       $o .= '<tr><td>'.$record ['Cust_ID'].'</td>'; 
 
\t \t \t $o .='<td>'.$record ['Cust_Name'].'</td>'; 
 
\t \t \t $o .='<td><img height=127 width=127 src=data:image;base64>'.$record ['image'].'</td>'; 
 
\t \t \t $o .='</tr>'; 
 
      }    
 

 
     $o .= '</tbody></table>'; 
 

 
     echo $o; 
 
    //free result set memory 
 
     //mssql_free_result($result); 
 

 
    //close the connection 
 
     //sqlsrv_close($dbhandle); 
 
    ?>

+0

Ist das Bild von 'BLOB' Typ? Oder nur der Weg zum Bild? – Marcus

+0

Wenn ich dich nicht falsch verstanden habe, könntest du den Dateinamen im src-Attribut des img-Tags widergeben, anstatt in einem '' -Element zu erscheinen:' $ o. = ' '; ' – Ekin

+0

der Typ is image – kwekwe

Antwort

0

Sie kann auf diese Weise angezeigt werden:

$o .='<td><img height=127 width=127 src="'.$record ['image'].'"></td>'; 
0

Versuchen statt

$o .='<td><img height=127 width=127 src=data:image;base64>'.$record ['image'].'</td>'; 

dieses:

$o .='<td><img height=127 width=127 src="data:image/png;base64,' . $record['image'] . '"></td>'; 

Das sollte funktionieren, wenn $record['image'] der Base64-Code des Bildes darin hat.

Der Grund, warum Ihr Bild derzeit nicht angezeigt wird, ist, weil das Tag die Quelle nicht wirklich angegeben hat. Wenn $record['image'] ein Dateiname ist, dann erzeuge einfach eine URL mit diesem Dateinamen und setze diese stattdessen in die src=''.

Verwandte Themen