Question J'ai un png encodé en base64, comment puis-je écrire l'image dans un fichier en PHP?


Quelle est la bonne façon de créer un fichier image (PNG) en PHP, quand j'ai l'encodage base64?

J'ai joué avec:


file_put_contents('/tmp/'. $_REQUEST['id'].'.png', $_REQUEST['data']);

dois-je décoder? devrais-je utiliser la bibliothèque gd?


33
2017-10-07 17:14


origine


Réponses:


Ma meilleure supposition est que vous devez simplement appeler base64_decode() sur $_REQUEST['data'] avant de l'écrire dans le fichier. Cela devrait suffire :)


34
2017-10-07 17:21



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'une toile HTML.


45
2018-06-30 01:42



Je pense que vous voudriez décoder avec base64_decode () à moins que vous l'utilisiez comme ils sont ici ICI.

Ce dont je suis sûr, c'est que vous voudrez nettoyer $ _REQUEST ['id'] avant de l'utiliser.


6
2017-10-07 17:24