Я пытаюсь 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
но все еще безуспешно.
$RESPONSE="$(curl -v -X POST -d '{"image":`base64|$DIR$IMAGE`,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8' --max-time 180 -s $URL)";
cat vlc.jpg | base64 -w 0
- в случае, если кто-то хочет вывод в виде строки для копирования и вставки.base64 DSC_0251.JPG
? Нет необходимости пропускатьcat
фильтр, когда программа принимает файл в качестве аргументов (base64 [OPTIONS] [FILE]
)Результат в одну строку:
Для
HTML
:echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Как файл:
В переменной:
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
В переменной для
HTML
:IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Верните вам читаемые данные:
См .: http://www.greywyvern.com/code/php/binary2base64
источник
-w 0
этот параметр очень важен во многих случаях. Ex. Если мы запускаемся прямо в командную строку. Благодарность!base64: invalid option -- w
. Когда его снимают, я получаюUnable to open '0': No such file or directory
. Смотрите это вместо этого.Для этого есть команда Linux: base64
Чтобы присвоить результат переменной, используйте
test=`base64 DSC_0251.JPG`
источник
base64 -d DSC_0251.b64 > DSC_0251.JPG
может вернуть вам читаемые данные.База 64 для html:
file="DSC_0251.JPG" type=$(identify -format "%m" "$file" | tr '[A-Z]' '[a-z]') echo "data:image/$type;base64,$(base64 -w 0 "$file")"
источник
Чтобы base64 его и поместил в буфер обмена:
file="test.docx" base64 -w 0 $file | xclip -selection clipboard
источник
Если вам нужен ввод от терминала, попробуйте это
lc=`echo -n "xxx_${yyy}_iOS" | base64`
-n
опция не вводит символ "\ n" в команду base64.источник