gpt4 book ai didi

java - 在 Java 中解码 Base64 百分比编码的图像字符串

转载 作者:行者123 更新时间:2023-11-28 13:03:52 24 4
gpt4 key购买 nike

friend ,

我必须将图像从 IOS 上传到 Java 网络服务器。因此,我的 IOS 程序将图像编码为 Base64 图像格式并对其进行编码,以删除特殊字符的任何问题,如下所示。

    let imageData = UIImageJPEGRepresentation(myImageView.image!, 0.5)
let base64String = imageData!.base64EncodedStringWithOptions([])
let encodeImg = base64String.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()) as String!

然后将编码后的图像数据字符串作为 JSON 对象发送到网络服务器。

    let params = ["image":[ "content_type": "image/jpeg", "filename":"testing", "file_data": base64String]]

do {
let postBody = try NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions.init(rawValue: 0))
request.HTTPBody = postBody

let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
print("Response: \(response)")})
task.resume()

} catch {
print(error)
}

现在Java服务器将base64图像数据字符串解码为图像

InputStream stream = new ByteArrayInputStream(Base64.decode(image.getBytes(), Base64.DEFAULT));

并将流写入 image.jpeg 文件。当我们尝试打开文件时,出现文件格式不受支持错误。

当我尝试打印Base64编码的图像数据字符串时,我发现它是这样的。

%2F9j%2F4AAQSkZJRgABAQAASABIAAD%2F4QBMRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAAqACAAQAAAABAAAQwKADAAQAAAABAAALIAAAAAD%2F7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+%2F+ICQElDQ19QUk9GSUxFAAEBAAACMEFEQkUCEAAAbW50clJHQiBYWVogB9AACAALABMAMwA7YWNzcEFQUEwAAAAAbm9uZQAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1BREJFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKY3BydAAAAPwAAAAyZGVzYwAAATAAAABrd3RwdAAAAZwAAAAUYmtwdAAAAbAAAAAUclRSQwAAAcQAAAAOZ1RSQwAAAdQAAAAOYlRSQwAAAeQAAAAOclhZWgAAAfQAAAAUZ1hZWgAAAggAAAAUYlhZWgAAAhwAAAAUdGV4dAAAAABDb3B5cmlnaHQgMjAwMCBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZAAAAGRlc2MAAAAAAAAAEUFkb2JlIFJHQiAoMTk5OCkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABjdXJ2AAAAAAAAAAECMwAAY3VydgAAAAAAAAABAjMAAGN1cnYAAAAAAAAAAQIzAABYWVogAAAAAAAAnBgAAE+lAAAE...

如果我们能注意到,它包含许多百分号“%”,就像我使用的那样

base64String.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()

在上传之前 swift 。

谁能指导我解码百分比编码的图像字符串。

我浏览了 link在 Java 中进行 Base64 数据解码。有了它,我们可以解码 base64 字符串,但如何处理百分比编码的字符串。

我想学习解码百分比编码的字符串。请提出您的意见。同时,我尝试上传没有百分比编码的图像,看看我是否可以在 Java 中成功解码它。

非常感谢。

最佳答案

不要对图像字符串进行百分比编码。您可以直接发送为 base64EncodedString。 Java 可以轻松对其进行解码。

关于java - 在 Java 中解码 Base64 百分比编码的图像字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33276296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com