PHP-Daten-URI in Datei: Beheben von Problemen mit beschädigten Bildern
Aufrechterhaltung der Integrität von Bilddaten während der Konvertierung vom Daten-URI in das Dateiformat ist entscheidend. Eine häufige Herausforderung bei der Verwendung der PHP-Funktion file_put_contents zum Speichern von Daten aus einem JavaScript-Aufruf „canvas.toDataURL()“ ist die Beschädigung des resultierenden Bildes. Das Problem ist auf das Vorhandensein von Leerzeichen im Daten-URI zurückzuführen.
Die Dokumentation von PHP bietet eine einfache Lösung für dieses Problem:
$encodedData = str_replace(' ', ' ', $encodedData);
$decodedData = base64_decode($encodedData);
Durch das Ersetzen von Leerzeichen durch Pluszeichen werden die dekodierten Daten korrekt rekonstruiert und sichergestellt, dass die Bilddatei nicht beschädigt ist.
In Ihrem speziellen Fall Sie arbeiteten mit einem Daten-URI, der ein PNG-Bild enthielt. So können Sie die Lösung in Ihren Code integrieren:
// Get the base64-encoded URI data from JavaScript
$data = $_POST['logoImage'];
// Remove the leading "data:image/png;base64," part
$uri = substr($data, strpos($data, ',') 1);
// Replace any whitespace with a plus
$uri = str_replace(' ', ' ', $uri);
// Decode the base64-encoded data
$decodedData = base64_decode($uri);
// Save the decoded data to a file with the specified name
file_put_contents($_POST['logoFilename'], $decodedData);
Mit diesem Ansatz können Sie den Daten-URI erfolgreich als unbeschädigte PNG-Datei speichern.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3