我尝试在shell脚本中对图像进行base64编码,并将其放入变量:
test="$(printf DSC_0251.JPG | base64)"
echo $test
RFNDXzAyNTEuSlBH
我也试过这样的东西:
test=\`echo -ne DSC_0251.JPG | base64\`
但仍然没有成功。
我想做这样的事情:
curl -v -X POST -d '{"image":$IMAGE_BASE64,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8' http://192.168.1.1/upload
我找到了这个http://www.zzzxo.com/q/answers-bash-base64-encode-script-not-encoding-right-12290484.html
但仍然没有成功。
8条答案
按热度按时间pprl5pva1#
您需要使用
cat
来获取名为'DSC_0251.JPG'的文件的 * 内容 *,而不是文件名本身。但是,
base64
可以从文件本身读取:ki0zmccv2#
编码
Linux平台
单线结果:
对于
HTML
:作为文件:
变量:
在
HTML
的变量中:OSX平台
在 OSX 上,
base64
二进制文件不同,参数也不同,如果你想在 OSX 上使用它,你应该删除-w 0
。单线结果:
对于
HTML
:作为文件:
变量:
在
HTML
的变量中:通用OSX/Linux
作为Shell函数
作为Shell脚本
创建包含以下内容的
base64.sh
文件:使其可执行:
使用方法:
解码
返回可读数据:
f0ofjuux3#
有一个Linux命令:base64
将结果分配给变量使用
lstz6jyr4#
如果您需要来自termial的输入,请尝试以下操作
-n
选项将不向base64命令输入“\n”字符。6yjfywim5#
Base 64 for html:
ogsagwnx6#
将其转换为base64并将其放到剪贴板中:
xn1cxnb47#
请在使用
echo
时非常小心(这里有很多答案),因为它会在末尾添加一个换行符,由于这些不祥的extra encoded characters,扭曲了您的编码字符串(导致例如错误的密码):Cg==
添加到编码字符串的末尾:例如,如果我们有这个字符串要编码:
使用`printf',它看起来像这样(正确的):
...但
echo
如下所示(不正确):dnph8jn48#
在macOS Monterey上,您可以用途: