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
- https://api.dartlang.org/stable/2.1.0/dart-core/Uri/Uri.dataFromBytes.html
- https://api.dartlang.org/stable/2.1.0/dart-core/Uri/Uri.dataFromString.html
前者为您进行 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()
.
我正在尝试将图像字节转换为 base64 编码字符串,此操作成功但当我打印出编码字符串时,我得到 ff:
/9j/4RgvRXhpZgAASUkqAAgAAAANAAABBAABAAAAQAYAAAEBBAABAAAAsAQAAA8BAgAIAAAAqgAAABABAgAIAAAAsgAAABIBAwABAAAACAAAABoBBQABAAAAugAAABsBBQABAAAAwgAAACgBAwABAAAAAgAAADEBAgANAAAAygAAADIBAgAUAAAA2AAAABMCAwABAAAAAQAAAGmHBAABAAAA7AAAACWIBAABAAAA7gIAAAADAABzYW1zdW5nAFNNLVA1NTUASAAAAAEAAABIAAAAAQAAAFA1NTVYWFUxQ1JBMgAAMjAxOTowMToxNCAwOTozMzoyOAAZAJqCBQABAAAAHgIAAJ2CBQABAAAAJgIAACKIAwABAAAAAgAAACeIAwABAAAAZAAAAACQBwAEAAAAMDIyMAOQAgAUAAAALgIAAASQAgAUAAAAQgIAAAGRBwAEAAAAAQIDAAKSBQABAAAAVgIAAAWSBQABAAAAXgIAAAeSAwABAAAAAgAAAAiSAwABAAAAAAAAAAmSAwABAAAAAAAAAAqSBQABAAAAZgIAAHySBwBiAAAAbgIAAACgBwAEAAAAMDEwMAGgAwABAAAAAQAAAAKgBAABAAAAQAYAAAOgBAABAAAAsAQAAAWgBAABAAAA0AIAABeiAwABAAAAAgAAAAGjBwABAAAAAQAAAAKkAwABAAAAAAAAAAOkAwABAAAAAAAAAAakAwABAAAAAAAAAAAAAAABAAAAFAAAAPAAAABkAAAAMjAxOTowMToxNCAwOTozMzoyOAAyMDE5OjAxOjE0IDA5OjMzOjI4AP0AAABkAAAA/QAAAGQAAADrAAAAZAAAAAcAAQAHAAQAAAAwMTAwA
编码的字符串应该比上面的字符多得多。现在,当我尝试通过将 data:image/jpeg;base64
附加到编码字符串的开头来查看它时,没有显示任何内容。
是在控制台中 flutter 切割字符串还是什么,如果是,那么我如何获得完整的编码字符串。
How to native convert string -> base64 and base64 -> string 显示如何进行 base64 编码
Dart 还提供了 Uri
class 上的构造函数来获取数据 URL
- https://api.dartlang.org/stable/2.1.0/dart-core/Uri/Uri.dataFromBytes.html
- https://api.dartlang.org/stable/2.1.0/dart-core/Uri/Uri.dataFromString.html
前者为您进行 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()
.