Comment résoudre les problèmes d'image corrompue lors de la conversion d'URI de données en fichier en PHP ?

Susan Sarandon
Libérer: 2024-10-23 08:48:29
original
752 Les gens l'ont consulté

How to Resolve Corrupted Image Issues When Converting Data-URI to File in 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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!