使用 curl 发送 base64 编码的图像

使用 curl 发送 base64 编码的图像

curl我正在尝试使用以下命令从命令行发送 base64 编码的图像base64

curl -X POST -H "Content-Type: application/json" -d '{"image" : $( base64 ~/Pictures/1.jpg )}' http://some/url/  

但是,我收到的回复说这$是一个意外的令牌。我该如何发送 base64 编码的图像?

答案1

@muru 是正确的,但是如果你想发送json对你的 base64 数据进行编码可能对于命令行来说太大,你可能更喜欢这样的方式:

(echo -n '{"image": "'; base64 ~/Pictures/1.jpg; echo '"}') |
curl -H "Content-Type: application/json" -d @-  http://some/url/ 

-X POST暗示了这一点-d

答案2

Bash 不会在单引号中展开。'{"image" : $( base64 ~/Pictures/1.jpg )}'按原样发送。相反,请尝试:

'{"image" : "'"$( base64 ~/Pictures/1.jpg)"'"}'

(在进行命令替换之前退出打开的引号,然后再次打开引号。)

相关内容