Próbuję wysłać obraz zakodowany w formacie base64 z wiersza polecenia, używając curl
i base64
tak:
curl -X POST -H "Content-Type: application/json" -d '{"image" : $( base64 ~/Pictures/1.jpg )}' http://some/url/
Jednak otrzymuję odpowiedź z informacją, że $
jest to nieoczekiwany token. Jak wysłać obraz zakodowany w standardzie base64?
14.04
command-line
curl
Małe dziecko
źródło
źródło
Bash nie rozwija się w pojedynczych cudzysłowach.
'{"image" : $( base64 ~/Pictures/1.jpg )}'
zostaje wysłany w stanie, w jakim się znajduje. Zamiast tego spróbuj:(Wyjdź z cytatu otwierającego przed wykonaniem zamiany poleceń, a następnie ponownie otwórz cytat.)
źródło
$()
przeciwnym razie linie wyjściowe base64 zostaną podzielone na kilka argumentów curl.$ curl -d "name=Avatar&username=avatar&password=A1234567&[email protected]&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/