【发布时间】:2017-03-16 17:16:09
【问题描述】:
我正在尝试将 UIImage 转换为 base64 字符串,目的是将其上传到后端服务器。
但是,我在这篇文章中找到的转换代码(应该是苹果自己的实现)生成了一个无效的字符串:
Convert between UIImage and Base64 string
上传后,我得到这张图片:
[从iOS转换的base64解码的失败图像1
而不是这个:
[从在线base64转换工具解码的正确图像2
我使用 Postman 测试了上传结果,后端正确处理了有效的 base64 图像,因此我将错误范围缩小到 base64 转换本身。这是我的代码:
public extension UIImage
{
func base64Encode() -> String?
{
guard let imageData = UIImagePNGRepresentation(self) else
{
return nil
}
let base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
let fullBase64String = "data:image/png;base64,\(base64String))"
return fullBase64String
}
}
知道如何在将 iOS 设备上的 base64 输出上传到服务器之前修复它吗?
【问题讨论】:
-
这在我看来完全正确,是什么让你认为这是转换?你检查过转换算法服务器端吗?
-
试试
base64EncodedStringWithOptions([])。您可能还需要替换“+”、“/”和“=”,比较 stackoverflow.com/a/39376534/1187415。
标签: ios swift uiimage base64 uiimagepngrepresentation