Maison >développement back-end >tutoriel php >Comment résoudre les problèmes d'image corrompue lors de la conversion d'URI de données en fichier en PHP ?
PHP Data-URI vers fichier : résolution des problèmes d'image corrompue
Maintenir l'intégrité des données d'image lors de la conversion du Data-URI au format de fichier est crucial. Un défi courant rencontré lors de l'utilisation de la fonction file_put_contents de PHP pour enregistrer les données d'un appel JavaScript canvas.toDataURL() est la corruption de l'image résultante. Le problème vient de la présence d'espaces blancs dans le Data-URI.
La documentation PHP fournit une solution simple à ce problème :
<code class="php">$encodedData = str_replace(' ', '+', $encodedData); $decodedData = base64_decode($encodedData);</code>
En remplaçant les espaces blancs par des plus, les données décodées est correctement reconstruit, garantissant que le fichier image n'est pas corrompu.
Dans votre cas spécifique, vous travailliez avec un Data-URI contenant une image PNG. Voici comment intégrer la solution dans votre code :
<code class="php">// 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);</code>
En suivant cette approche, vous pouvez enregistrer avec succès le Data-URI en tant que fichier PNG non corrompu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!