Bilderproblem (base64)

Breuker

Erfahrenes Mitglied
Hallo!

Ich versuche im Moment aus meiner Datenbank mit base64() kodierte Bilder wieder zu dekodieren.
Wenn ich die Bilder aus meiner ursprünglichen XML mit base64_decode() hole, bekomme ich die Bilder in einwandfreiem Zustand ausgegeben.

Jedoch müssen die Bilder in eine Datenbank verschickt werden und dort nachher ausgelesen werden. Wenn ich nun die Bilddaten, die genau gleich wie in der XML-Datei sind, aus der Datenbank lade und decodieren will, dann bekomme ich einen Buchstabensalat mit noch mehr Sonderzeichen...

Muss ich irgendetwas in meiner Datenbank für solche Daten umstellen?

Breuker
 
In der Datenbank solltest du einen Datentyp wählen, bei dem die Daten binär gespeichert werden wie etwa „BLOB“.
 
So, ich habe nun herausgefunden, dass meine Datenbank soweit stimmt.

Das Problem ist der HTML-Code! Wenn im gesamten Dokument, kein HTML Code enthalten ist, dann erscheint das Bild. Sobald jedoch HTML Code da ist, dann kommt ein Sonderzeichenhaufen... Gibts dafür eine erklärung?

Breuker
 
Das Problem ist, dass die Grafiken jeweils eigene Ressourcen sind und damit nicht einfach in dem HTML-Dokument ausgegeben werden können – es sei denn durch Angabe als data-URI. Daher benötigst du ein eigenes Skript, dass die Grafiken ausliefert.
 
ich hab mir die wikipedia seite einmal angesehen und habe mal das HTML Beispiel gemacht:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
vr4MkhoXe0rZigAAAABJRU5ErkJggg" alt="Red dot" />

</body>
</html>

Nun sollte ein roter Punkt erscheinen... es kommt aber nur das Bild mit dem alternativen Text :confused:

Breuker
 
Du hast den Base64-Code nicht richtig übernommen, die abschließenden Gleichheitszeichen gehören dazu:
HTML:
<img src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Red dot" />
 
Wo hast du den die Gleichheitszeichen her? Im Code auf Wikipedia sind doch keine :confused: Auch mit den Zeichen bekomme ich keinen roten Punkt...

Breuker
 
Zurück