Heim >Web-Frontend >js-Tutorial >Wie speichere ich PNG-Bilder serverseitig aus Base64-Daten-URIs mit PHP?

Wie speichere ich PNG-Bilder serverseitig aus Base64-Daten-URIs mit PHP?

Susan Sarandon
Susan SarandonOriginal
2024-12-09 16:43:17497Durchsuche

How to Save PNG Images Server-Side from Base64 Data URIs using PHP?

PNG-Bilder serverseitig aus Base64-Daten-URIs speichern

Um Base64-Zeichenfolgen, die mit dem JavaScript-Tool „Canvas2Image“ von Nihilogic generiert wurden, mithilfe von PHP in tatsächliche PNG-Dateien auf dem Server zu konvertieren, Sie müssen die folgenden Schritte ausführen:

  1. Extrahieren Sie die Base64-Bilddaten. Trennen Sie den Daten-URI-Header von den tatsächlichen Base64-Daten. Hier ist ein Ausschnitt:

    $data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE...';
    list($type, $data) = explode(';', $data);
    list(, $data) = explode(',', $data);
  2. Decodieren Sie die Base64-Daten.Konvertieren Sie die codierten Daten zurück in eine Binärzeichenfolge.

    $data = base64_decode($data);
  3. Speichern Sie das Bild in einer Datei.Schreiben Sie die dekodierten Daten in eine PNG-Datei auf dem Server.

    file_put_contents('/tmp/image.png', $data);
  4. Alternative einzeilige Methode: Sie können diesen einzeiligen Befehl auch zum Extrahieren, Dekodieren und Speichern verwenden das Bild:

    $data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
  5. Sorgen Sie für eine ordnungsgemäße Fehlerbehandlung:Implementieren Sie Mechanismen um ungültige Daten-URIs, fehlgeschlagene Base64-Dekodierung oder falsche Bildtypen zu erkennen, wie zum Beispiel:

    if (preg_match('/^data:image\/(\w+);base64,/', $data, $type)) {
        // Valid data URI
    } else {
        throw new \Exception('Invalid data URI');
    }
    
    if ($data === false) {
        throw new \Exception('Base64 decode failed');
    }

Das obige ist der detaillierte Inhalt vonWie speichere ich PNG-Bilder serverseitig aus Base64-Daten-URIs mit PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn