在 Grails 中解码 base64 图像

Decode base64 image in Grails

我有一个 post api,我要发送一个 json 字符串,其中包含 base64 编码 image.Below 是 json 字符串

{ "imageData":"base64encoded string",
  "status":"1"
}

其中 base64encode 字符串是 iVBORw0KGgoAAAANSUhEUgAAAHgAAACgCAIAAABIaz/HAAAAAXNSR0IArs4c6QAA\r\nABxpRE9UAAAAAgAAAAAAAABQAAAAKAAAAFAAAABQAABWL3xrAqoAAEAASURBVHgB\r\nlL2Fe1t7mueZme6uewNGMUu2LNkyySSjDJKZmZkSO8zM7CTmmJnZYbxUVbdgsKp7\r\nqqdrdp

我无法 post 完整的编码,因为它太长了。如何将此编码字符串转换为服务器 side.Actually 上的图像文件,我想从那里将​​图像上传到 ftp 服务器上。

Base64 使用 Ascii 字符发送二进制文件,因此要检索您的图像,您基本上必须将 Base64 字符串解码回字节数组并将其保存到文件中。

String encoded = 'iVBORw0KGgoAAAANSUhEUg' // You complete String
encoded.replaceAll("\r", "")
encoded.replaceAll("\n", "")
byte[] decoded = encoded.decodeBase64()
new File("file/path").withOutputStream {
  it.write(decoded);
}

编辑:您的无效字符问题来自编码字符串中的 \r\n 个字符,您必须将 base64 字符串放在一行中才能对其进行解码。我更新了示例代码来做到这一点。