在 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 字符串放在一行中才能对其进行解码。我更新了示例代码来做到这一点。
我有一个 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 字符串放在一行中才能对其进行解码。我更新了示例代码来做到这一点。