web-dev-qa-db-fra.com

Comment décoder une chaîne d'image en utilisant base64 en ligne de commande?

Disons que j'ai une image image1.jpg
Je peux l'encoder à l'aide de l'outil base64:

myImgStr=$(base64 image1.jpg)

J'ai essayé de le décoder à l'aide de la commande suivante:

base64 -i -d $myImgStr > image2.jpg

ou

echo -n $myImgStr | base64 -d -i > image2.jpg

Mais dans les deux cas j'obtiens l'erreur suivante:

base64: extra operand ‘/9j/4AAQSkZJRgABAQAAAQABAAD/7QCEUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAGgcAmcAFHNH’ Try 'base64 --help' for more information.
Toute aide est appréciée.

4
Navaro

L'utilitaire base64 lit son entrée soit à partir d'un fichier dont le nom est fourni en tant qu'argument, soit à partir d'une entrée standard. Il ne lit jamais son entrée à partir d'un argument de ligne de commande. Dans votre cas, pour décoder une chaîne stockée dans une variable, vous devez fournir la chaîne sur l'entrée standard de base64.

Si vous utilisez Bash, vous pouvez utiliser une chaîne ici:

base64 -d <<< "$myImgStr" > image2.jpg

Si votre Shell n'accepte pas les chaînes here, vous pouvez toujours utiliser:

echo "$myImgStr" | base64 -d > image2.jpg

(Notez les doubles guillemets autour de "$myImgStr". Vous devriez toujours doubler les développements de variables, sauf si vous avez une bonne raison de ne pas le faire.)

11
AlexP

Comment exporter le fichier Salesforce Quote PDF et le lire, reconvertissez-le de Base64 en PDF à l'aide de la ligne de commande Linux

  1. Utilisez Dataloader et exportez l'objet QuoteDocument avec tous les champs et données.

dataloader1

dataloader2

dataloader

2. Utilisez l’éditeur de texte TextPad pour ouvrir le fichier csv. N'utilisez pas le Bloc-notes car il ne peut pas gérer les données de grande taille et les tronque. 3. TextPad peut gérer les données volumineuses et respecte tous les caractères de nouvelle ligne, etc., lorsque vous ouvrez le fichier et également lorsque vous copiez/collez les données. 4. Accédez à une ligne spécifique des données, sélectionnez et copiez la chaîne de champ de cellule contenant les données codées PDF Base64. Assurez-vous de le sélectionner jusqu'au bout - mais n'incluez pas les champs suivants.

textpad1

  1. Ne pas inclure les champs suivants après.
  2. Sélectionnez la chaîne jusqu'à, mais n'incluez pas le symbole "quote".

textpad2

  1. Copiez/collez la chaîne dans une nouvelle fenêtre TextPad.
  2. Enregistrez le nouveau TextPad dans un fichier, par exemple, document1.txt
  3. Copiez le fichier docuemnt1.txt sur votre ordinateur Linux (vous pouvez utiliser Dropbox pour cela).
  4. Ouvrir une fenêtre de terminal en ligne de commande Linux
  5. Exécutez la commande base64 decode (base64 faisant partie du paquet coreutils), $ base64 --decode ~/Dropbox/linux_stuff/Document1.txt> ~/Dropbox/linux_stuff/decoded1.pdf
  6. Cette commande lit le fichier Document1.txt et génère le fichier décodé PDF sur décodé1.pdf.
  7. Vous pouvez maintenant ouvrir le fichier decoded1.pdf en tant que fichier PDF.
  8. Vous pouvez renommer le fichier decoded1.pdf comme bon vous semble, c'est-à-dire revenir au nom de fichier d'origine qui était attaché dans l'enregistrement d'objet Salesforce Quote d'origine.

linux_command_line

0
Martin Hurst