Quelle est la bonne façon en PHP pour créer un fichier image (PNG), quand j'ai l'encodage base64?
J'ai joué avec:
file_put_contents('/tmp/'. $_REQUEST['id'].'.png', $_REQUEST['data']);
dois-je décoder? dois-je utiliser la bibliothèque Gd?
Ma meilleure supposition est que vous devez simplement appeler base64_decode()
sur $_REQUEST['data']
avant de l'écrire dans le fichier. Cela devrait suffire :).
Vous devez utiliser base64_decode (). ET. Parfois, ce n'est pas suffisant. Voici tout le code dont vous avez besoin:
$img = $_POST['data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$fileData = base64_decode($img);
//saving
$fileName = 'photo.png';
file_put_contents($fileName, $fileData);
P.S. J'ai utilisé ce code pour obtenir une image PNG à partir d'un canevas html.
Je pense que vous voudriez décoder avec base64_decode () à moins que vous ne l'utilisiez que tel qu'il est ici ICI .
La chose dont je suis sûr, c'est que vous voudrez aseptiser $ _REQUEST ['id'] avant de l'utiliser.