Conversion de chaînes Base64 en fichiers image en PHP
Le problème se pose lors de la conversion de chaînes d'image base64 en fichiers image. La chaîne base64 contient souvent des métadonnées supplémentaires telles que "data:image/png;base64", qui interfèrent avec le décodage correct.
Comprendre le problème
Le décodage base64 par défaut La fonction attend des données d'image pures, mais les métadonnées supplémentaires présentes dans la chaîne base64 corrompent le processus de décodage. Cela entraîne une image invalide lors de la tentative d'affichage ou d'enregistrement.
Solution : suppression des métadonnées avant le décodage
Pour résoudre ce problème, modifiez la fonction de conversion pour diviser l'image. chaîne sur des virgules et extrayez les données d’image réelles. La fonction modifiée ci-dessous gère efficacement cette situation :
function base64_to_jpeg($base64_string, $output_file) { // Open the output file for writing $ifp = fopen($output_file, 'wb'); // Split the string on commas // $data[0] == "data:image/png;base64" // $data[1] == <actual base64 string> $data = explode(',', $base64_string); // Validate that the string is in the correct format if (count($data) < 2) { throw new InvalidArgumentException("Invalid base64 string"); } // Extract and decode the actual image data fwrite($ifp, base64_decode($data[1])); // Clean up the file resource fclose($ifp); return $output_file; }
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!