我正在尝试将图像字节转换为base64编码的字符串,此操作成功,但是当我打印出编码后的字符串时,我得到了上述内容。一个编码后的字符串应该比上面的字符要长得多。现在,当我尝试通过在编码字符串的开头添加"data:image/jpeg;base64"来查看它时,没有任何显示。Flutter是否在控制台中截断了字符串?如果是,则如何获取完整的编码字符串。
print()
和 debugPrint()
都用于在控制台中记录日志。如果你使用 print()
并且输出太多,Android 有时会丢弃一些日志行。为了避免这种情况,请使用 debugPrint()
。var params = {
"image_file": base64Encode(_selectedImage.readAsBytesSync()),
};
如何将字符串原生转换为base64和base64转换为字符串展示了如何进行base64编码
Dart还提供了Uri
类的构造函数,以获取数据URL
其中前者为您执行Base64编码,而后者则接受已经编码的字符串。
可能是由于调试输出窗口太长而被截断了。请确保在 API 端是否完全获取。
这是我的代码
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());
}
List<int>
块进行编码,而在传输中还有更多的块。 - Günter Zöchbauer