我正在使用PHP后端和Swift应用程序工作,在后端我上传图像,然后从Swift应用程序下载它。在Swift应用程序中,我可以上传图像,删除后端中的旧图像并保存新图像,类似于Facebook个人资料图片。
现在,我从后端的API中获取base64字符串,我转换为UIImage并使用此代码:
let data: NSData = NSData(base64EncodedString: "string from API", options: NSDataBase64DecodingOptions(rawValue: 0))
var img: UIImage = UIImage(data: data!)!
当我在Swift应用程序,Gallery或CAM中拍照时,我尝试对图像进行编码并使用API上传。我不明白的第一件事就是为什么当我编写图像时,生成的String的长度是我从后端获取图像时API中的String的两倍或多或少。
我尝试从后端下载图像并上传相同的图像,以查看base64中生成的字符串是否相同,但不是。
这是我为Swift应用程序编码图像所做的:
let img: NSData = UIImageJPEGRepresentation(MyImage.image, 1.0)!
let base64Image: String = img.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
在PHP中我使用base64_encode(string)但生成的文件已损坏或难以辨认。