如何base64编码图像在linux bash / shell(How to base64 encode image in linux bash / shell)
我试图在shell脚本中对64位图像进行编码,并将其放入变量中:
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
但仍然没有成功。
I'm trying to base64 encode an image in a shell script and put it into variable:
test="$(printf DSC_0251.JPG | base64)"
echo $test
RFNDXzAyNTEuSlBH
I've also tried something like this:
test=\`echo -ne DSC_0251.JPG | base64\`
but still with no success.
I want to do something like this:
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
but still have had no success.
原文:https://stackoverflow.com/questions/16918602
更新时间:2019-11-06 18:07
最满意答案
您需要使用cat来获取名为“DSC_0251.JPG”的文件的内容 ,而不是文件名本身。
test="$(cat DSC_0251.JPG | base64)"
但是, base64可以从文件本身读取:
test=$( base64 DSC_0251.JPG )
You need to use cat to get the contents of the file named 'DSC_0251.JPG', rather than the filename itself.
test="$(cat DSC_0251.JPG | base64)"
However, base64 can read from the file itself:
test=$( base64 DSC_0251.JPG )
2013-06-04
相关问答
1.是,其他的shell还有csh、zsh、fish等。bash用得比较多,shell编程很强,不过fish和zsh的用户交互貌似做的很好。 2.一个标准的组成部分吧……就像python。套件一般用来指Linux发行版。
1.是 2.区别大,你会写bash shell不代表你会写c shell,不过我觉得你会写一个shell脚本 另一种你上手也很快,起码读懂应该问题不大。你可以先学bash shell因为用的比较多 而且可移植性强,bash 是shell的一种。 3.属于shell,只安装了bash shell就可以运行bash shell脚本,并不是针对某个系统或者发行版本。 shell这种东西可以随意安装的。你用习惯哪个shell,就算初装系统里没有,你也可以单独安装一个 4.给你推荐两本书 《Bash she
...
Bourne Again Shell (bash) bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slackware, Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。 操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。 shel
...
您需要使用cat来获取名为“DSC_0251.JPG”的文件的内容 ,而不是文件名本身。 test="$(cat DSC_0251.JPG | base64)"
但是, base64可以从文件本身读取: test=$( base64 DSC_0251.JPG )
You need to use cat to get the contents of the file named 'DSC_0251.JPG', rather than the filename itself. test="$(ca
...
据我所知,图像数据有一个xml元素。 您可以使用本网站对文件进行编码(使用上传字段)。 然后将数据复制并粘贴到XML元素。 您也可以使用PHP这样做: <?php
$im = file_get_contents('filename.gif');
$imdata = base64_encode($im);
?>
使用Mozilla的指南来创建OpenSearch插件的帮助。 例如,图标元素使用如下:
echo $auth
结果: [51][00:33:22] vlazarenko@alluminium (~/tests) > echo -ne "\0myuse
...
我看到两个问题。 首先,在完成使用之前清除mymsg向量。 这会使arr指针悬空(指向不再分配的内存)。 当您访问arr以获取数据时,最终会出现“未定义行为”。 然后你使用strncpy来复制(潜在地)二进制数据。 当它到达文件中的第一个nul(0)字节时,该副本将停止,因此不会复制所有数据。 您应该使用memcpy 。 I see two problems. First, you are clearing your mymsg vector before you're done using it
...
通常不需要对图像进行编码,因为您可以将原始数据从客户端传递到服务器。 您指定的编码算法不仅需要额外的内存,而且还需要更多的处理能力来反转客户端的编码,并且它们没有任何优势。 编码图像有意义的唯一时间是将数据存储在数据库中,但如果您这样做,则实际上应该将图像保存到服务器上的本地路径,并将路径存储到文件中。数据库。 请参阅从base64字符串中将图像从android发送到PHP是一个好习惯吗? There typically is no need to encode the image, as you
...
您需要使用iconv从UTF-8转换为UTF-16而不使用字节顺序标记: $ echo -n 'BASE64' | iconv -f UTF8 -t UTF16LE | base64
QgBBAFMARQA2ADQA
UTF16LE使其省略BOM。 请参阅https://superuser.com/q/381056/4206 ,其中有人要求强行包括BOM,但您想要相反的,这很方便 - 问题就在于此。 You need to use iconv to convert from UTF-8 to U
...
这是一些Python代码,它接受命令行上的搜索词后面的文件名。 像往常一样,如果arg包含空格,则必须引用它。 import sys
from base64 import b64decode
fname, pattern = sys.argv[1:]
with open(fname) as f:
for row in f:
row = b64decode(row).decode()
if pattern in row:
print(
...