Générer un image (source) à partir de son code Base64

Fermé
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 - 9 déc. 2020 à 11:37
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 - 9 déc. 2020 à 12:09
Bonjour,

J'ai un code
$data
dont la valeur est de forme :
data:image/jpeg;base64,/9j/4AAQSkZJRgABA ... cSblFDsNPIlmggv//Z


Et je souhaiterai créer un PHP générant l'image et permettant son utilisation de la manière suivante :

<img src="myfile.php?query=image&id=1" />


Mon script PHP se réalise en deux étapes :

$def = explode( ',', $data )[0];
$img = explode( ',', $data )[1];
$type = explode( ':', explode( ';', $def )[0] )[1];
$type = explode( '+', $type )[0];


$type
vaut "image/jpeg" et
$img
vaut "/9j/4AAQSkZJRgABA ... cSblFDsNPIlmggv//Z"

Puis avec ces deux informations je génère l'image :

header( 'Content-type: '.$type.'; charset=utf-8' );
echo base64_decode( $img );


Malheureusement lorsque je visite l'URL aucune image n'est affichée (+ symbole d'image 'broken').

De plus en mettant en commentaire la commande
header()
mes données affichent des caractères spéciaux :

jA�A�B0BrB�B�C:C}C�DDGD�D�EEUE�E�F"FgF�F�G5


Savez vous comment résoudre mon problème ?

Merci d'avance pour vos réponses !
A voir également:

1 réponse

jordane45 Messages postés 38161 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 mai 2024 4 657
9 déc. 2020 à 11:43
Bonjour,

Vu ce que tu nous décris, si tu veux l'utiliser dans ta balise <img>, $img devrait valoir
data:image/jpeg;base64,/9j/4AAQSkZJRgABA ... cSblFDsNPIlmggv//Z

et sans mettre la ligne du header dans le script.


0
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 6
Modifié le 9 déc. 2020 à 12:25
Merci pour ta réponse, mais je souhaiterai pouvoir la "sourcer" depuis n'importe où c.a.d :

<img src="https://mydomain.com/myfile.php?query=image&id=1" />


et pas :

<img src="<?php echo $data; ?>" />


sachant que le fichier à cette adresse : https://mydomain.com/myfile.php?query=image&id=1 doit être mon image
et que ma balise image peut être n'importe où.
0