3
votes

La chaîne codée Flutter Base64 est incomplète

J'essaie de convertir un octet d'image en une chaîne encodée en base64, cette opération est réussie mais lorsque j'imprime la chaîne encodée, j'obtiens le ff:

/ 9j / 4RgvRXhpZgAASUkqAAgAAAANAAABBAABAAAAQAYAAAEBBAABAAAAsAQAAA8BAgAIAAAAqgAAABABAgAIAAAAsgAAABIBAwABAAAACAAAABoBBQABAAAAugAAABsBBQABAAAAwgAAACgBAwABAAAAAgAAADEBAgANAAAAygAAADIBAgAUAAAA2AAAABMCAwABAAAAAQAAAGmHBAABAAAA7AAAACWIBAABAAAA7gIAAAADAABzYW1zdW5nAFNNLVA1NTUASAAAAAEAAABIAAAAAQAAAFA1NTVYWFUxQ1JBMgAAMjAxOTowMToxNCAwOTozMzoyOAAZAJqCBQABAAAAHgIAAJ2CBQABAAAAJgIAACKIAwABAAAAAgAAACeIAwABAAAAZAAAAACQBwAEAAAAMDIyMAOQAgAUAAAALgIAAASQAgAUAAAAQgIAAAGRBwAEAAAAAQIDAAKSBQABAAAAVgIAAAWSBQABAAAAXgIAAAeSAwABAAAAAgAAAAiSAwABAAAAAAAAAAmSAwABAAAAAAAAAAqSBQABAAAAZgIAAHySBwBiAAAAbgIAAACgBwAEAAAAMDEwMAGgAwABAAAAAQAAAAKgBAABAAAAQAYAAAOgBAABAAAAsAQAAAWgBAABAAAA0AIAABeiAwABAAAAAgAAAAGjBwABAAAAAQAAAAKkAwABAAAAAAAAAAOkAwABAAAAAAAAAAakAwABAAAAAAAAAAAAAAABAAAAFAAAAPAAAABkAAAAMjAxOTowMToxNCAwOTozMzoyOAAyMDE5OjAxOjE0IDA5OjMzOjI4AP0AAABkAAAA / QAAAGQAAADrAAAAZAAAAAcAAQAHAAQAAAAwMTAwA

Une chaîne encodée est censée être bien plus que les caractères ci-dessus. Maintenant, lorsque j'essaie de voir cela en ajoutant data: image / jpeg; base64 , au début de la chaîne encodée, rien ne s'affiche.

Le flutter coupe-t-il la chaîne dans la console ou quoi et si oui, comment puis-je obtenir la chaîne codée complète.


1 commentaires

Peut-être que vous recevez un flux et n'encodez que le premier morceau List tant qu'il y en a d'autres sur le fil.


5 Réponses :


1
votes

Comment convertir nativement la chaîne -> base64 et base64 - > string montre comment encoder en base64

Dart fournit également des constructeurs sur la classe Uri pour obtenir une URL de données

où le premier fait l'encodage base64 pour vous et le second prend une chaîne déjà encodée.


0 commentaires

1
votes

Vous devez le convertir en octets si vous essayez de l'envoyer au backend. Cela vous donnera la longue chaîne que vous recherchez;)

var params = {
      "image_file": base64Encode(_selectedImage.readAsBytesSync()),
    };


0 commentaires

-2
votes

voici mon code

static Future<Response> upload64(File file) 
    List<int> imageBytes = file.readAsBytesSync();
    String base64Image = base64Encode(imageBytes);

    String fileName = path.basename(file.path);

    var body = {"fileName": fileName, "base64": base64Image};
    print("http.upload >> " + body.toString());

  }


0 commentaires

0
votes

La fenêtre de sortie de débogage la tronque probablement car elle est trop longue. Veuillez vous assurer du côté de l'API si vous l'acceptez complètement ou non.


0 commentaires

1
votes

Pour moi, base64 ne s'affiche pas complètement. si tel est le cas, print () et debugPrint () sont tous deux utilisés pour se connecter dans la console. Si vous utilisez print () et que la sortie est trop importante à la fois, alors Android supprime parfois certaines lignes de journal. Pour éviter cela, utilisez debugPrint () .


0 commentaires