Я пытаюсь отправить base64 закодированное изображение от использования командной строки curl
и base64
как это:
curl -X POST -H "Content-Type: application/json" -d '{"image" : $( base64 ~/Pictures/1.jpg )}' http://some/url/
Однако я получаю ответ, назад говоря это $
неожиданный маркер. Как я отправляю base64 закодированное изображение?
Bash не расширяется в одинарных кавычках. '{"image" : $( base64 ~/Pictures/1.jpg )}'
отправляется как есть. Вместо этого попробуйте:
'{"image" : "'"$( base64 ~/Pictures/1.jpg)"'"}'
(Выходят из вводной кавычки прежде, чем сделать замену команды затем, открывают кавычку снова.)
@muru корректен, однако при попытке отправить , json, кодирующий Ваши base64 данные, может быть слишком большим для командной строки, и можно предпочесть что-то вроде этого:
(echo -n '{"image": "'; base64 ~/Pictures/1.jpg; echo '"}') |
curl -H "Content-Type: application/json" -d @- http://some/url/
Эти -X POST
подразумевается -d
.