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!