Flutter Base64编码的字符串不完整。

3
我正在尝试将图像字节转换为base64编码的字符串,此操作成功,但是当我打印出编码后的字符串时,我得到了上述内容。一个编码后的字符串应该比上面的字符要长得多。现在,当我尝试通过在编码字符串的开头添加"data:image/jpeg;base64"来查看它时,没有任何显示。Flutter是否在控制台中截断了字符串?如果是,则如何获取完整的编码字符串。

也许你正在接收一个流,并且只对第一个 List<int> 块进行编码,而在传输中还有更多的块。 - Günter Zöchbauer
5个回答

1
对我而言,base64没有完全显示。如果是这种情况,print()debugPrint() 都用于在控制台中记录日志。如果你使用 print() 并且输出太多,Android 有时会丢弃一些日志行。为了避免这种情况,请使用 debugPrint()

1
如果您想将其发送到后端,请将其转换为字节。这将给您所需的长字符串;)
var params = {
      "image_file": base64Encode(_selectedImage.readAsBytesSync()),
    };

0

0

可能是由于调试输出窗口太长而被截断了。请确保在 API 端是否完全获取。


-2

这是我的代码

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

  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接