Neu JTL Datenbank -> Bilderspeicher auslesen

E-Rauchershop

Aktives Mitglied
9. Dezember 2013
79
2
Ich möchte für mich ein kleines PHP Script aufbauen. Die Verbindung zur Datenbank klappt schon mal. Auch das auslesen von Daten funktioniert.

Jetzt möchte ich von Artikeln die Bilder angezeigt bekommen.

Die Tabelle habe ich bereits gefunden:
Tabelle: dbo.tBild

Nur leider weiß ich nicht wie ich aus den Daten das Bild herstellen kann.
Spalten: bBild, nDateigroesse, nBreite, nHoehe, cHash, cChecksum,

Vielleicht hat jemand einen Tipp!
 

E-Rauchershop

Aktives Mitglied
9. Dezember 2013
79
2
Aktuell sieht mein Code so aus:

$abfrage = "SELECT bBild FROM dbo.tBild";

foreach ($conn->query($abfrage) as $row) {

echo $row['bBild'];

}
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
1.235
212
Beispiel mit JPG:

Code:
echo '<img src="data:image/jpg;base64,'.base64_encode(hex2bin($row['bBild'])).'" title="" alt="" />';
 

E-Rauchershop

Aktives Mitglied
9. Dezember 2013
79
2
Kommt ein Fehler

Warning: hex2bin(): Hexadecimal input string must have an even length in C:\xampp2\htdocs\test.php on line 55

Warning: hex2bin(): Input string must be hexadecimal string in C:\xampp2\htdocs\test.php on line 55
90ff00
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
1.235
212
versuch mal so:

Code:
echo '<img src="data:image/jpg;base64,'.
   base64_encode(
   hex2bin(
   substr(
   $row['bVorschauBild'],2))).'" title="" alt="" />';
 

E-Rauchershop

Aktives Mitglied
9. Dezember 2013
79
2
erstmal großes Dankeschön ans helfen.

Folgender Fehler kommt jetzt:
Warning: hex2bin(): Hexadecimal input string must have an even length in C:\xampp2\htdocs\test.php on line 59

Warning: hex2bin(): Hexadecimal input string must have an even length in C:\xampp2\htdocs\test.php on line 59

Code:
    $conn = new PDO( "sqlsrv:Server=$servername; Database=$datenbank", $benutzer, $passwort);
   
        if($conn) {
            echo "Verbindung passt. <br/>";
        }else{
            echo "Verbindung passt nicht. <br/>";
        die(print_r(sqlsrv_errors(), true));}
       
        $abfrage = "SELECT bVorschauBild FROM dbo.tBild";
       
foreach ($conn->query($abfrage) as $row) {
     
echo '<img src="data:image/jpg;base64,'.
   base64_encode(
   hex2bin(
   substr(
   $row['bVorschauBild'],2))).'" title="" alt="" />';

}
 

E-Rauchershop

Aktives Mitglied
9. Dezember 2013
79
2
Fehlermeldung:
Warning: hex2bin(): Input string must be hexadecimal string in C:\xampp2\htdocs\test.php on line 48

Warning: hex2bin(): Input string must be hexadecimal string in C:\xampp2\htdocs\test.php on line 48
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
1.235
212
Bei mir funktioniert
Code:
echo "<html><body>";
echo '<img src="data:image/jpg;base64,'.
   base64_encode(
   hex2bin(
   substr(
   $b,2))).'" title="" alt="" />';
echo "</body></html>";

Schau mal in Deine Daten ob die mit 0xFFD8FFE beginnen (bei JPG)
 

E-Rauchershop

Aktives Mitglied
9. Dezember 2013
79
2
Beispiel:

0xFFD8FFE000104A46494600010201012C012C0000FFED002C50686F746F73686F7020332E30003842494D03ED000000000010012C000000010001012C000000010001FFE16C88687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D304D7043656869487A7265537A4E54637A6B633964223F3E0A3C783A786D706D65746120786D6C6E733A783D2261646F62653A6E733A6D6574612F2220783A786D70746B3D2241646F626520584D5020436F726520352E332D633031312036362E3134353636312C20323031322F30322F30362D31343A35363A32372020202020202020223E0A2020203C7264663A52444620786D6C6E733A7264663D22687474703A2F2F7777772E77332E6F72672F313939392F30322F32322D7264662D73796E7461782D6E7323223E0A2020202020203C7264663A4465736372697074696F6E207264663A61626F75743D22220A202020202020202020202020786D6C6E733A64633D22687474703A2F2F7075726C2E6F72672F64632F656C656D656E74732F312E312F223E0A2020202020202020203C64633A666F726D61743E696D6167652F6A7065673C2F64633A666F726D61743E0A2020202020202020203C64633A7469746C653E0A2020202020202020202020203C7264663A416C743E0A2020202020202020202020202020203C7264663A6C6920786D6C3A6C616E673D22782D64656661756C74223E726F6C6F6B6F20E58D95E7AEA128323678372E357832322E35636D293C2F7264663A6C693E0A2020202020202020202020203C2F7264663A416C743E0A2020202020202020203C2F64633A7469746C653E0A2020202020203C2F7264663A4465736372697074696F6E3E0A2020202020203C7264663A4465736372697074696F6E207264663A61626F75743D22220A202020202020202020202020786D6C6E733A786D703D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F220A202020202020202020202020786D6C6E733A786D7047496D673D22687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F672F696D672F223E0A2020202020202020203C786D703A43726561746F72546F6F6C3E41646F626520496C6C7573747261746F7220435336202857696E646F7773293C2F786D703A437265617...
Nur ein Teil
 

E-Rauchershop

Aktives Mitglied
9. Dezember 2013
79
2
Code:
echo "<html><body>";
echo '<img src="data:image/jpg;base64,'.
   base64_encode(
   hex2bin(
   substr(
   $b,2))).'" title="" alt="" />';
echo "</body></html>";

für was steht $b welche Variable?
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.915
215
Hürth
Nur zur info, der fehler ist das hex2bin, den der inhalt ist Binär, und keine Hex Datenfolge, auch wenn diese im SSMS oder ähnlichen tools so angezeigt werden. Daher der Fehler.
 

marfitec

Sehr aktives Mitglied
10. März 2018
200
36
Hallo zusammen,

ich würde mich hier gerne einmal einklinken.

In welchem Format sind die Bilddaten in der DB gespeichert?
 

Ähnliche Themen