如何在linux bash/shell中对base64进行编码

das*_*h00 79 linux variables shell base64 image

我正在尝试base64编码shell脚本中的图像并将其放入变量:

test="$(printf DSC_0251.JPG | base64)"
echo $test
RFNDXzAyNTEuSlBH
Run Code Online (Sandbox Code Playgroud)

我也尝试过这样的事情:

test=\`echo -ne DSC_0251.JPG | base64\`
Run Code Online (Sandbox Code Playgroud)

但仍然没有成功.

我想做这样的事情:

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
Run Code Online (Sandbox Code Playgroud)

我发现了这个http://www.zzzxo.com/q/answers-bash-base64-encode-script-not-encoding-right-12290484.html

但仍然没有成功.

che*_*ner 127

您需要使用cat获取名为"DSC_0251.JPG"的文件的内容,而不是文件名本身.

test="$(cat DSC_0251.JPG | base64)"
Run Code Online (Sandbox Code Playgroud)

但是,base64可以从文件本身读取:

test=$( base64 DSC_0251.JPG )
Run Code Online (Sandbox Code Playgroud)

  • `cat vlc.jpg | base64 -w 0` - 如果有人想要输出字符串来复制和粘贴. (15认同)
  • 什么问题?上面的两个命令应该产生相同的结果,除了第一个是[无用的cat](http://partmaps.org/era/unix/award.html). (2认同)

Edu*_*omo 47

单行结果:

base64 -w 0 DSC_0251.JPG
Run Code Online (Sandbox Code Playgroud)

用于HTML:

echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Run Code Online (Sandbox Code Playgroud)

作为文件:

base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64
Run Code Online (Sandbox Code Playgroud)

在变量中:

IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
Run Code Online (Sandbox Code Playgroud)

在变量中HTML:

IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Run Code Online (Sandbox Code Playgroud)

请参阅:http://www.greywyvern.com/code/php/binary2base64

  • `-w 0` 这个参数在很多情况下非常重要。前任。如果我们直接进入命令行运行。谢谢! (2认同)
  • 顺便说一句,在OSX上,我得到`base64:invalid option-w`。删除后,我将无法打开“ 0”:没有这样的文件或目录。请改为参阅[this](https://superuser.com/questions/120796/how-to-encode-base64-via-command-line)。 (2认同)

Dav*_*shi 34

有一个Linux命令:base64

base64 DSC_0251.JPG >DSC_0251.b64
Run Code Online (Sandbox Code Playgroud)

将结果分配给变量使用

test=`base64 DSC_0251.JPG`
Run Code Online (Sandbox Code Playgroud)

  • `base64 -d DSC_0251.b64> DSC_0251.JPG`可以让你读回可读数据. (7认同)