Estou tentando enviar uma imagem codificada em base64 a partir da linha de comando usando curl
e base64
assim:
curl -X POST -H "Content-Type: application/json" -d '{"image" : $( base64 ~/Pictures/1.jpg )}' http://some/url/
No entanto, recebo uma resposta dizendo que $
é um token inesperado. Como envio a imagem codificada em base64?
14.04
command-line
curl
Criança pequena
fonte
fonte
O Bash não se expande entre aspas simples.
'{"image" : $( base64 ~/Pictures/1.jpg )}'
é enviado como está. Em vez disso, tente:(Saia da cotação de abertura antes de fazer a substituição do comando e abra uma cotação novamente.)
fonte
$()
contrário as linhas de saída base64 serão divididas em vários argumentos de curvatura.$ 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/