在Grails中解码base64图像

时间:2015-06-18 06:52:45

标签: grails groovy

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

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

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

由于篇幅太长,我无法发布完整的编码。如何将此编码的字符串转换为服务器端的图像文件。实际上我从那里开始将图像上传到ftp服务器上。

1 个答案:

答案 0 :(得分:1)

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字符串对其进行解码。我更新了示例代码来执行此操作。

相关问题