Flutter Base64编码字符串不完整

Flutter Base64 Encoded String Is Incomplete

我正在尝试将图像字节转换为 base64 编码字符串,此操作成功但当我打印出编码字符串时,我得到 ff:

/9j/4RgvRXhpZgAASUkqAAgAAAANAAABBAABAAAAQAYAAAEBBAABAAAAsAQAAA8BAgAIAAAAqgAAABABAgAIAAAAsgAAABIBAwABAAAACAAAABoBBQABAAAAugAAABsBBQABAAAAwgAAACgBAwABAAAAAgAAADEBAgANAAAAygAAADIBAgAUAAAA2AAAABMCAwABAAAAAQAAAGmHBAABAAAA7AAAACWIBAABAAAA7gIAAAADAABzYW1zdW5nAFNNLVA1NTUASAAAAAEAAABIAAAAAQAAAFA1NTVYWFUxQ1JBMgAAMjAxOTowMToxNCAwOTozMzoyOAAZAJqCBQABAAAAHgIAAJ2CBQABAAAAJgIAACKIAwABAAAAAgAAACeIAwABAAAAZAAAAACQBwAEAAAAMDIyMAOQAgAUAAAALgIAAASQAgAUAAAAQgIAAAGRBwAEAAAAAQIDAAKSBQABAAAAVgIAAAWSBQABAAAAXgIAAAeSAwABAAAAAgAAAAiSAwABAAAAAAAAAAmSAwABAAAAAAAAAAqSBQABAAAAZgIAAHySBwBiAAAAbgIAAACgBwAEAAAAMDEwMAGgAwABAAAAAQAAAAKgBAABAAAAQAYAAAOgBAABAAAAsAQAAAWgBAABAAAA0AIAABeiAwABAAAAAgAAAAGjBwABAAAAAQAAAAKkAwABAAAAAAAAAAOkAwABAAAAAAAAAAakAwABAAAAAAAAAAAAAAABAAAAFAAAAPAAAABkAAAAMjAxOTowMToxNCAwOTozMzoyOAAyMDE5OjAxOjE0IDA5OjMzOjI4AP0AAABkAAAA/QAAAGQAAADrAAAAZAAAAAcAAQAHAAQAAAAwMTAwA

编码的字符串应该比上面的字符多得多。现在,当我尝试通过将 data:image/jpeg;base64 附加到编码字符串的开头来查看它时,没有显示任何内容。

是在控制台中 flutter 切割字符串还是什么,如果是,那么我如何获得完整的编码字符串。

How to native convert string -> base64 and base64 -> string 显示如何进行 base64 编码

Dart 还提供了 Uri class 上的构造函数来获取数据 URL

前者为您进行 base64 编码,后者采用已经编码的字符串。

如果您要将其发送到后端,则应将其转换为字节。这将为您提供您正在寻找的长字符串 ;)

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

这是我的代码

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());

  }

可能调试输出 windows 正在截断它,因为它太长了。请API确认是否完全接受。

对我来说,base64 没有完全显示。如果是这样的话, print()debugPrint() 都用于登录控制台。如果您使用 print() 并且一次输出太多,那么 Android 有时会丢弃一些日志行。为避免这种情况,请使用 debugPrint().