J'essaie d'envoyer une image codée en base64 à partir de la ligne de commande en utilisant curl
et base64
comme ceci:
curl -X POST -H "Content-Type: application/json" -d '{"image" : $( base64 ~/Pictures/1.jpg )}' http://some/url/
Cependant, je reçois une réponse disant que $
est un jeton inattendu. Comment envoyer l'image codée en base64?
@muru est correct, cependant, si vous essayez d'envoyer un json encodant vos données base64, il est peut-être trop volumineux pour la ligne de commande et vous préférerez peut-être quelque chose comme ça:
(echo -n '{"image": "'; base64 ~/Pictures/1.jpg; echo '"}') |
curl -H "Content-Type: application/json" -d @- http://some/url/
Le -X POST
est impliqué par -d
.
Bash ne se développe pas entre guillemets simples. '{"image" : $( base64 ~/Pictures/1.jpg )}'
est envoyé tel quel. Au lieu de cela, essayez:
'{"image" : "'"$( base64 ~/Pictures/1.jpg)"'"}'
(Quittez le devis d'ouverture avant de procéder à la substitution de commande, puis ouvrez-le à nouveau.)