Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gehe ich mit Leerzeichen in Daten-URIs während der Dateikonvertierung in PHP um?

Wie gehe ich mit Leerzeichen in Daten-URIs während der Dateikonvertierung in PHP um?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-23 08:52:02681Durchsuche

How to Handle Spaces in Data URIs During File Conversion in PHP?

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!

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