Bild zu Base64 string in php?
Hey, der titel sagt eigentlich schon alles. Ich habe vor ein Bild in ein Base64 String zu konvertieren und das ganze in PHP.
Könnte mir jemand helfen wie dies funktioniert. Das Bild was ich konvertieren möchte liegt auf dem Pfad: /temp/images/bild.png
Bitte ein kleinen tutorial mit code oder ein video in dem es gut erklärt wird.
Danke für eure Hilfe
Mit freundlichen Grüßen DoGame5
2 Antworten
$path = '/temp/images/bild.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
Wieso fügst Du vorne 'data:image/' und den ganzen Kram an? Das sieht mir eher aus wie Code, der Bilddaten in einen Shopware-Shop hochlädt 😉 - die brauchen nämlich diese Informationen. Aber für ein reines Base64 der Bilddatei-Daten brauchst Du das nicht
Teile, die solche Base64-Strings lesen, wollen meist wissen, um welchen Content es sich handelt. Wenn das nicht benötigt wird, ja klar, dann diese Info einfach weglassen.
Ja, kommt schwer auf das API an, welches die Daten dann verarbeiten soll - falls eine solche Verarbeitung überhaupt erforderlich ist.
Es funktioniert sehr gut wie @Rammstein53 das gemacht hat.
Ja, was ich nur meinte ist, dass in den Daten eben noch Inhalte drin sind, die über die reinen Base64-Daten hinausgehen. Wenn Du die nicht unbedingt brauchst, lass sie weg. Alles inkl. "base64," ist nicht Teil der eigentlichen Base64-codierten Daten.
Ja, ist ok, ich verstehe schon was du meinst. Ich habe bei ihm nur das
data:image/
zu einem
data:
gemacht, und jetzt klappt es auch. Vorher hatte ich
data:image/image/png
da stehen und das ist ja falsch
Um die reinen Daten der Bilddatei als BASE64 zu erhalten, genügt folgendes:
$content = file_get_contents($path);
$base64 = base64_encode($content);
Zur Sicherheit als 2. Parameter bei file_get_contents noch FILE_BINARY verwenden. Das erzwingt das Lesen im Binärformat.
Könntest du mir auch Helfen das rückwärts zu machen? Also ich habe den base64 string und will es in einem <img> Tag anzeigen.
Wie geht das?