Si vous avez besoin d'une entrée de termial, essayez ceci
lc=`echo -n "xxx_${yyy}_iOS" | base64`
-n
l'option n'entrera pas le caractère "\n" dans la commande base64.
Il existe une commande Linux pour cela :base64
base64 DSC_0251.JPG >DSC_0251.b64
Pour affecter le résultat à la variable use
test=`base64 DSC_0251.JPG`
Encoder
Sous Linux
Résultat sur une seule ligne :
base64 -w 0 DSC_0251.JPG
Pour HTML
:
echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
En tant que fichier :
base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64
Dans la variable :
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
Dans variable pour HTML
:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Sur OSX
Sur OSX , le base64
binaire est différent et les paramètres sont différents. Si vous voulez l'utiliser sur OSX , vous devez supprimer -w 0
.
Résultat sur une seule ligne :
base64 DSC_0251.JPG
Pour HTML
:
echo "data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
En tant que fichier :
base64 DSC_0251.JPG > DSC_0251.JPG.base64
Dans la variable :
IMAGE_BASE64="$(base64 DSC_0251.JPG)"
Dans variable pour HTML
:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
OSX/Linux générique
En tant que fonction Shell
@base64() {
if [[ "${OSTYPE}" = darwin* ]]; then
# OSX
if [ -t 0 ]; then
base64 "[email protected]"
else
cat /dev/stdin | base64 "[email protected]"
fi
else
# Linux
if [ -t 0 ]; then
base64 -w 0 "[email protected]"
else
cat /dev/stdin | base64 -w 0 "[email protected]"
fi
fi
}
# Usage
@base64 DSC_0251.JPG
cat DSC_0251.JPG | @base64
En tant que script shell
Créer base64.sh
fichier avec le contenu suivant :
#!/usr/bin/env bash
if [[ "${OSTYPE}" = darwin* ]]; then
# OSX
if [ -t 0 ]; then
base64 "[email protected]"
else
cat /dev/stdin | base64 "[email protected]"
fi
else
# Linux
if [ -t 0 ]; then
base64 -w 0 "[email protected]"
else
cat /dev/stdin | base64 -w 0 "[email protected]"
fi
fi
Rendez-le exécutable :
chmod a+x base64.sh
Utilisation :
./base64.sh DSC_0251.JPG
cat DSC_0251.JPG | ./base64.sh
Décoder
Récupérez vos données lisibles :
base64 -d DSC_0251.base64 > DSC_0251.JPG
Vous devez utiliser cat
pour obtenir le contenu du fichier nommé 'DSC_0251.JPG', plutôt que le nom du fichier lui-même.
test="$(cat DSC_0251.JPG | base64)"
Cependant, base64
peut lire à partir du fichier lui-même :
test=$( base64 DSC_0251.JPG )