我试图从图像文件中获取base64字符串。当我使用以下方法时
Future convertBase64(file) async{
List<int> imageBytes = fileImage.readAsBytesSync();
String base64Image = await 'data:image/png;base64,' + base64Encode(imageBytes);
// print('length of image bytes ${base64Image.length}');
return base64Image;
}
字符串
它显示了一个错误:
exception---- Converting object to an encodable object failed: Instance of 'Future<dynamic>'
型
如果我不使用future,它会直接传递到下一步,而不会转换为base64 String。转换通常需要时间。
1条答案
按热度按时间4szc88ey1#
变量
fileImage
似乎与传递给函数的变量file
不匹配。这可能是导致问题的原因吗?我很好奇为什么需要在
String
上调用await
-这似乎是不必要的。错误可能是由于如何调用convertBase64()
造成的。对于Future<T>
这样的JavaScript方法,我建议这样调用它:字符串
此外,正如前面在评论中所建议的,最好使用
Uri.dataFromBytes()
,而不是自己解析编码的String。型