【问题标题】:Flutter Base64 Encoded String Is IncompleteFlutter Base64 编码字符串不完整
【发布时间】:2019-06-08 06:54:34
【问题描述】:

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

/9j/4RgvRXhpZgAASUkqAAgAAAANAAABBAABAAAAQAYAAAEBBAABAAAAsAQAAA8BAgAIAAAAqgAAABABAgAIAAAAsgAAABIBAwABAAAACAAAABoBBQABAAAAugAAABsBBQABAAAAwgAAACgBAwABAAAAAgAAADEBAgANAAAAygAAADIBAgAUAAAA2AAAABMCAwABAAAAAQAAAGmHBAABAAAA7AAAACWIBAABAAAA7gIAAAADAABzYW1zdW5nAFNNLVA1NTUASAAAAAEAAABIAAAAAQAAAFA1NTVYWFUxQ1JBMgAAMjAxOTowMToxNCAwOTozMzoyOAAZAJqCBQABAAAAHgIAAJ2CBQABAAAAJgIAACKIAwABAAAAAgAAACeIAwABAAAAZAAAAACQBwAEAAAAMDIyMAOQAgAUAAAALgIAAASQAgAUAAAAQgIAAAGRBwAEAAAAAQIDAAKSBQABAAAAVgIAAAWSBQABAAAAXgIAAAeSAwABAAAAAgAAAAiSAwABAAAAAAAAAAmSAwABAAAAAAAAAAqSBQABAAAAZgIAAHySBwBiAAAAbgIAAACgBwAEAAAAMDEwMAGgAwABAAAAAQAAAAKgBAABAAAAQAYAAAOgBAABAAAAsAQAAAWgBAABAAAA0AIAABeiAwABAAAAAgAAAAGjBwABAAAAAQAAAAKkAwABAAAAAAAAAAOkAwABAAAAAAAAAAakAwABAAAAAAAAAAAAAAABAAAAFAAAAPAAAABkAAAAMjAxOTowMToxNCAwOTozMzoyOAAyMDE5OjAxOjE0IDA5OjMzOjI4AP0AAABkAAAA/QAAAGQAAADrAAAAZAAAAAcAAQAHAAQAAAAwMTAwA

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

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

【问题讨论】:

  • 也许你正在接收一个流并且只编码第一个 List<int> 块,而在线上还有更多。

标签: android dart flutter base64 encode


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      Dart 还在 Uri 类上提供构造函数来获取数据 URL

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

      【讨论】:

        【解决方案4】:

        调试输出窗口可能会截断它,因为它太长了。请确保在 API 方面您是否完全接受。

        【讨论】:

          【解决方案5】:

          这是我的代码

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-10-15
            • 2019-07-11
            • 1970-01-01
            • 1970-01-01
            • 2011-04-22
            • 2018-12-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多