Wie behebt man beschädigte Bilder beim Konvertieren von Daten-URIs in Dateien in PHP?

DDD
Freigeben: 2024-10-23 08:52:29
Original
984 Leute haben es durchsucht

How to Fix Corrupted Images When Converting Data-URIs to Files in PHP?

PHP-Daten-URI zur Datei: Beschädigte Bilder

Bei der Webentwicklung kommt es häufig zu Situationen, in denen Daten von JavaScript als empfangen werden Daten-URI. Ein solches Szenario besteht darin, diesen URI mithilfe von PHP in einer Datei zu speichern. Einige Benutzer haben jedoch berichtet, dass sie beschädigte Bilddateien erhalten haben, nachdem sie dies mit dem folgenden Code versucht haben:

<code class="php">$data = $_POST['logoImage'];
$uri = substr($data,strpos($data,",")+1);
file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>
Nach dem Login kopieren

Dieses Problem ist auf die Tatsache zurückzuführen, dass bestimmte JavaScript-Funktionen, wie z. B. canvas.toDataURL(), Leerzeichen als Prozentsätze kodieren (%). Allerdings erwartet die PHP-Funktion base64_decode Pluszeichen ( ).

Um dieses Problem zu lösen, muss der Code geändert werden, um alle Leerzeichen durch Pluszeichen zu ersetzen, bevor der Daten-URI dekodiert wird:

<code class="php">// Replace spaces with pluses
$encodedData = str_replace(' ','+',$data);
// Decode the modified data-URI
$uri = substr($encodedData,strpos($encodedData,",")+1);
// Save the decoded data-URI as a file
file_put_contents($_POST['logoFilename'], base64_decode($uri));</code>
Nach dem Login kopieren

Durch die Implementierung dieser Änderung dekodiert und speichert der Code die von JavaScript empfangenen Daten-URIs korrekt, was zu intakten Bilddateien führt.

Das obige ist der detaillierte Inhalt vonWie behebt man beschädigte Bilder beim Konvertieren von Daten-URIs in Dateien in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!