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
Freigeben: 2024-12-09 16:43:17
Original
502 Leute haben es durchsucht

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);
    Nach dem Login kopieren
  2. Decodieren Sie die Base64-Daten.Konvertieren Sie die codierten Daten zurück in eine Binärzeichenfolge.

    $data = base64_decode($data);
    Nach dem Login kopieren
  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);
    Nach dem Login kopieren
  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));
    Nach dem Login kopieren
  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');
    }
    Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage