J'ai essayé de convertir une chaîne base64 en fichier image en utilisant des méthodes différentes pour les deux derniers jours mais chaque fois que le fichier de sortie n'affiche aucune image (il montre la taille et certains encodés Les données). 1. Le navigateur interprétant le fichier comme document et non image mime mais je suis assez sûr que ce n'est pas le problème car j'ai essayé de télécharger le fichier localy et c'est le même résultat. 2. J'ai essayé de comparer les résultats de sortie des outils en ligne comme codebeautify.org/base64-to-image-converter car il semble que les données dans le fichier image sont différentes de mes données. 3. Répertoire et fichiers ont 775 autorisations et apache ont chownConversion d'image Base64 en fichier retour image/donnée invalide
chaîne base64 ici: https://dpaste.de/gP7D/raw
Méthode A:
list($type, $profile_image) = explode(';', $profile_image);
list(,$extension) = explode('/',$type);
list(,$profile_image) = explode(',', $profile_image);
if($extension == 'jpeg'){$extension = "jpg";}
$filePath = '../uploads/profile_images/'.$uname.'.'.$extension; // using uname instead of unique id to not expose the uqniue key/session
$profile_image = base64_decode($profile_image);
file_put_contents($filePath, $profile_image);
Méthode B:
list($type, $profile_image) = explode(';', $profile_image);
list(,$extension) = explode('/',$type);
list(,$profile_image) = explode(',', $profile_image);
$filePath = '../uploads/profile_images/'.$uname.'.'.$extension;
$ifp = fopen($filePath, 'wb');
fwrite($ifp, base64_decode($profile_image));
fclose($ifp);
Ce que je suis mal faire?
Mise à jour: Apparemment, Apache/php.ini avait un max_input_vars maximum de 5000 alors que ma chaîne base64 étaient beaucoup plus élevés. Ce message peut être marqué comme résolu.
comment c'est la copie si les méthodes montrées dans le message mentionné ne fonctionnent pas pour moi et ont déclaré dans ce fil? – mele
Vous avez raison. Pouvez-vous partager une idée avec le reste du code? –
est une fonction autonome. $ profile_image stocke la chaîne base64 – mele