Próbuję zakodować base64 obraz w skrypcie powłoki i umieścić go w zmiennej:
test="$(printf DSC_0251.JPG | base64)"
echo $test
RFNDXzAyNTEuSlBH
Próbowałem też czegoś takiego:
test=\`echo -ne DSC_0251.JPG | base64\`
ale nadal bez sukcesu.
Chcę zrobić coś takiego:
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
Znalazłem to http://www.zzzxo.com/q/answers-bash-base64-encode-script-not-encoding-right-12290484.html
ale nadal nie odniosły sukcesu.
$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
- na wypadek, gdyby ktoś chciał wydrukować jako ciąg do skopiowania i wklejenia.base64 DSC_0251.JPG
? Nie ma potrzeby przechodzenia przezcat
filtr, gdy program przyjmuje plik jako arguments (base64 [OPTIONS] [FILE]
)Wynik w jednym wierszu:
Dla
HTML
:echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Jako plik:
W zmiennej:
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
W zmiennej dla
HTML
:IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Odzyskaj czytelne dane:
Zobacz: http://www.greywyvern.com/code/php/binary2base64
źródło
-w 0
ten parametr jest bardzo ważny w wielu przypadkach. Dawny. Jeśli uruchamiamy bezpośrednio w wierszu poleceń. Dzięki!base64: invalid option -- w
. Kiedy zostanie usunięty, dostajęUnable to open '0': No such file or directory
. Zobacz to zamiast tego .Jest do tego polecenie Linuksa: base64
Aby przypisać wynik do zmiennej użyj
test=`base64 DSC_0251.JPG`
źródło
base64 -d DSC_0251.b64 > DSC_0251.JPG
można odzyskać czytelne dane.Base 64 dla html:
file="DSC_0251.JPG" type=$(identify -format "%m" "$file" | tr '[A-Z]' '[a-z]') echo "data:image/$type;base64,$(base64 -w 0 "$file")"
źródło
Aby go base64 i umieścić w schowku:
file="test.docx" base64 -w 0 $file | xclip -selection clipboard
źródło
Jeśli potrzebujesz danych wejściowych z terminala, spróbuj tego
lc=`echo -n "xxx_${yyy}_iOS" | base64`
-n
opcja nie wprowadzi znaku "\ n" do polecenia base64.źródło