Heim >Backend-Entwicklung >PHP-Tutorial >Wie gehe ich mit Leerzeichen in Daten-URIs während der Dateikonvertierung in PHP um?
So konvertieren Sie einen Daten-URI in eine Datei in PHP
Beim Versuch, einen von JavaScript empfangenen Daten-URI mit PHP zu speichern, verwenden Sie die Der folgende Code könnte zu einer beschädigten Bilddatei führen:
<code class="php">$data = $_POST['logoImage']; $uri = substr($data, strpos($data, ",") + 1); file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>
Der zugrunde liegende Grund ist das Vorhandensein von Leerzeichen im Daten-URI, die in Pluszeichen umgewandelt werden müssen.
Lösung :
Die PHP-Dokumentation schlägt vor, dass für Daten, die von einer Javascript-Funktion „canvas.toDataURL()“ abgeleitet werden, Leerzeichen vor der Dekodierung durch Pluszeichen ersetzt werden sollten.
<code class="php">$encodedData = str_replace(' ', '+', $encodedData); $decodedData = base64_decode($encodedData);</code>
Diese Änderung ist enthalten in den Originalcode sollte die Bilddatei erfolgreich gespeichert werden:
<code class="php">$data = $_POST['logoImage']; $uri = substr($data, strpos($data, ",") + 1); $encodedData = str_replace(' ', '+', $uri); $decodedData = base64_decode($encodedData); file_put_contents($_POST['logoFilename'], $decodedData);</code>
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Leerzeichen in Daten-URIs während der Dateikonvertierung in PHP um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!