Heim  >  Artikel  >  Backend-Entwicklung  >  So speichern Sie Daten-URIs korrekt als Dateien in PHP

So speichern Sie Daten-URIs korrekt als Dateien in PHP

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-23 08:55:02634Durchsuche

How to Correctly Save Data URIs as Files in PHP

Daten-URI in eine Datei in PHP konvertieren

Bei der Aufgabe, einen aus JavaScript erhaltenen Daten-URI zu speichern, tritt häufig ein Problem auf Die resultierende Bilddatei scheint beschädigt zu sein. Dieses Problem tritt häufig auf, wenn Code ähnlich dem folgenden verwendet wird:

$data = $_POST['logoImage'];

$uri = substr($data,strpos($data,",")+1);

file_put_contents($_POST['logoFilename'], base64_decode($uri));

Um dieses Problem zu beheben, konsultieren Sie das PHP-Handbuch, in dem Sie die folgende Erkenntnis finden:

"Wenn Sie möchten Wenn Sie Daten speichern, die von einer Javascript-Funktion „canvas.toDataURL()“ abgeleitet sind, müssen Sie Leerzeichen in Pluszeichen umwandeln. Wenn Sie dies nicht tun, werden die dekodierten Daten beschädigt: „

$encodedData = str_replace(' ','+',$encodedData);
$decodedData = base64_decode($encodedData);

In diesem Beispiel: Die Variable „encodedData“ ist die aus JavaScript erhaltene Daten-URI-Zeichenfolge. Das Ersetzen der Leerzeichen (' ') durch Pluszeichen (' ') korrigiert etwaige Fehler, die während der Dekodierung auftreten können. Die dekodierten Daten können dann erfolgreich mit der bereitgestellten Funktion file_put_contents gespeichert werden.

Das obige ist der detaillierte Inhalt vonSo speichern Sie Daten-URIs korrekt als Dateien in 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