Я пытаюсь отправить base64 закодированный файл из командной строки , используя curl
и base64
как это:
curl -X POST -H "Content-Type: application/json" -d '{"image" : $( base64 ~/Pictures/1.jpg )}' http://some/url/
Однако я получаю ответ, который говорит, что $
это неожиданный знак. Как отправить изображение в кодировке base64?
14.04
command-line
curl
Маленький ребенок
источник
источник
Bash не раскрывается в одинарных кавычках.
'{"image" : $( base64 ~/Pictures/1.jpg )}'
отправляется как есть. Вместо этого попробуйте:(Выйдите из открывающей кавычки, прежде чем выполнять подстановку команд, затем снова откройте кавычку.)
источник
$()
заключить в кавычки, иначе выходные строки base64 будут разбиты на несколько аргументов curl.$ curl -d "name=Avatar&username=avatar&password=A1234567&email=avatar@user.com&token=16b185fe421d5017afb11691681906ed" --data-urlencode 'avatar='"$( base64 ~/Pictures/avatar004.jpg)"'' --data-urlencode 'image='"$( base64 ~/Pictures/avatar001.jpg)"'' --data-urlencode 'picture='"$( base64 ~/Pictures/577383.jpg)"'' http://localhost:8000/api/v1/users/register/