Ich brauche meine PHP-Seite, um mein BLOB-Bild aus der MySQL-database zu zeigen

Meine letzte Frage war also, wie ich meine techID von einer Suche anzeigen lassen kann:

Ich versuche, meine “Details” -Seite zu haben, um zwei getrennte Teile meines Servers zu referenzieren, die über techID verbunden sind

Meine neue Frage ist immer noch auf dieser Seite. Ich habe auch ein Echo-Bild hinzugefügt. aber ich habe Probleme, Blob und es mein Bild und nicht binäre JPEG-Daten anzuzeigen. Ich habe versucht, eine andere Instanz zu finden, kann aber keine finden, die meinen Fehler beheben.

 //Header ('Content-type: image/jpeg') echo "
Technician Image:
" . '' . "
";

und

 $query_Recordset2 = "SELECT * FROM technician WHERE techID=" . $row1["techID"] ; $Rs2 = mysql_query($query_Recordset2) or die(mysql_error()); 

Sind die einzigen Änderungen, die ich bisher von meiner letzten Frage gemacht habe (einschließlich der Korrektur, die mir gegeben wurde, die funktioniert hat).

Was ich nicht verstehe ist, wo und wie man 'Content-type: image/jpeg' , damit meine Seite das verknüpfte Bild erkennt, ist es MIME TYPE image/jpeg .

Was ich auf meiner Seite sehe, ist dies

Techniker Bild: E j i` = 7f $ D o ” b Ckkc R ^ M ; n ~ 0 & m) J R E) JDR E) JDR E) JDR E) JDR E) JDR E) JDSjR ) + N .R, u i n9, QX ~ {( ̮ : 2 12 ” aV7 6 { LP [ W گ R $ + LMc’hM 5 o PA | ګ .8 E ģ Rn 1 [ { 3> rY X ; Ǖ u z ‘ vf N 葟 z Q k 3 O ܨ ۀ S , N [{+ D ; ‘ $ $ & iJR ) JR ) JR ) JR ) JR ) JR ) JR ) JR ) JR ) JR ) JR ) JR ) Breite = “290” Höhe = “290”>

Offensichtlich habe ich einen mittleren Brocken gelöscht, also ist er nicht massiv. Es gibt ein kleines “Gebrochenes Bild” Feld, das in der Front erscheint und wenn ich mit der rechten Maustaste klicke und “Bild in neuem Fenster öffnen” wähle ist die URL einfach Content-type: oder ich bekomme eine verbotene Zugangsseite mit der URL http:// localhost/Sim5Server/Pages/%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%10JFIF%EF%BF%BD%01%02%EF%BF%BD%EF%BF%BDd%EF%BF%BDd%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BDC%EF%BF%BD

Ich habe einen Platz in dieser URL, da es kein Link für das Internet ist.

Ich habe nur den normalen BLOB-Typ verwendet, da ich ihn nur als kleines Bild mit weniger als 64 KB benötige

   

    In Ihrem aktuellen Fall haben Sie zwei Voraboptionen.

    Die erste und die, die ich nicht empfehle, wenn Sie so viele Bilder haben, ist die Inline-Base64-Kodierung. Dies geschieht mit:

      

    Eine Copy / Paste-Version mit Ihrem bestehenden Code:

     echo '
    Technician Image:
    ' . '' . '
    ';

    Die zweite Methode besteht darin, eine “Bild” -PHP-Datei zu erstellen, die die ID des Bildes in der database als Abfragezeichenfolgenparameter annimmt und das Bild ausgibt. Ihr HTML würde also ungefähr so ​​aussehen:

      

    Und Ihre PHP-Seite würde ähnlich aussehen:

     < ?php $id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 0; $image = getImageFromDatabase($id); // your code to fetch the image header('Content-Type: image/jpeg'); echo $image; ?> 

    Die einzige Möglichkeit, ein Bild von derselben Seite wie das Dokument auszugeben, ist eine Daten-URI .

     echo "
    Technician Image:
    " . '' . "
    ";

    Der richtige Code sollte wie folgt sein. Sie müssen stream_get_contents () verwenden, um die Ressourcen-ID in eine Zeichenfolge zu ändern.

      

    Ich denke, die beste Lösung besteht darin, den Pfad des Bildes in der database zu speichern, anstatt das gesamte Bild als BLOB zu speichern. Und dann, um das Bild auf der Webseite anzuzeigen, setzen Sie die src-Eigenschaft des img-Tags auf den in der database gespeicherten Pfad.