Convertir Base64 chaîne de caractères dans un fichier image?
Je suis en train de convertir mon image en base64 chaîne de caractères dans un fichier image. C'est ma chaîne Base64:
À l'aide de code suivant pour le convertir en un fichier image:
function base64_to_jpeg( $base64_string, $output_file ) {
$ifp = fopen( $output_file, "wb" );
fwrite( $ifp, base64_decode( $base64_string) );
fclose( $ifp );
return( $output_file );
}
$image = base64_to_jpeg( $my_base64_string, 'tmp.jpg' );
Mais j'obtiens une erreur de invalid image
, quoi de mal ici?
Vous devez vous connecter pour publier un commentaire.
Le problème est que
data:image/png;base64,
est inclus dans le contenu codé. Ce résultat invalide les données de l'image lors de la base64 fonction décode. Supprimer les données dans la fonction avant le décodage de la chaîne, comme si.file_put_contents($output_file, file_get_contents($base64_string));
Vous avez besoin pour enlever la partie qui dit
data:image/png;base64,
au début des données de l'image. Le réel données base64 vient après.Simplement enlever tout jusqu'à et y compris
base64,
(avant d'appelerbase64_decode()
sur les données) et vous serez amende.peut-être comme ce
Un moyen facile je suis en utilisant:
Cela fonctionne bien parce que
file_get_contents
peut lire les données à partir d'un URI, y compris de données://URI.C'est un vieux thread, mais dans le cas où vous souhaitez télécharger l'image ayant la même extension-
Vous pouvez créer de public_feeds " dans laravel est filesystem.php-