我正在尝试在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
但仍然没有成功。
答案 0 :(得分:117)
您需要使用cat
来获取名为“DSC_0251.JPG”的文件的内容,而不是文件名本身。
test="$(cat DSC_0251.JPG | base64)"
但是,base64
可以从文件中读取:
test=$( base64 DSC_0251.JPG )
答案 1 :(得分:39)
单行结果:
base64 -w 0 DSC_0251.JPG
HTML
:
echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
作为档案:
base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64
在变量中:
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
HTML
的变量:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
获取可读数据:
base64 -d DSC_0251.base64 > DSC_0251.JPG
答案 2 :(得分:33)
答案 3 :(得分:3)
html的基础64:
file="DSC_0251.JPG"
type=$(identify -format "%m" "$file" | tr '[A-Z]' '[a-z]')
echo "data:image/$type;base64,$(base64 -w 0 "$file")"
答案 4 :(得分:0)
要对其进行base64并将其放入剪贴板中
file="test.docx"
base64 -w 0 $file | xclip -selection clipboard
答案 5 :(得分:0)
如果您需要来自终端的输入,请尝试
lc=`echo -n "xxx_${yyy}_iOS" | base64`
-n
选项不会在base64命令中输入“ \ n”字符。