iOS Swift base64encoding 与 PAW 应用程序 Base64 编码不同
iOS Swift base64encoding different than PAW app Base64 Encoding
希望得到一些帮助。我正在尝试 post 将图像发送到服务器,它需要 PNG 文件的 base64 编码。当我使用 PAW 应用程序并对图像进行编码时,服务器上显示的一切都非常漂亮。当我尝试对 iOS Swift 4 执行相同操作时,生成的字符串相似但也有差异,因此图像不正确。关于如何匹配在 iOS 中的 PAW 应用程序中正确创建的字符串的任何想法。我在下面包含了代码以及创建的字符串(小样本)的屏幕截图。
谢谢!
let image : UIImage = UIImage(named:"STG.png")!
let imageData = UIImagePNGRepresentation(image)
var base64String = imageData?.base64EncodedString(options: [])
您根本不是在比较相同的数据。将 png 加载到 UIImage
然后将 UIImage
转换为新的 png 表示根本不会产生相同的字节集。
您需要直接将 png 文件加载到 Data
实例中,而不进行任何转换。
let imageURL = Bundle.main.url(forResource: "STG", withExtension: "png")!
let imageData = try! Data(contentsOf: imageURL)
var base64String = imageData.base64EncodedString(options: [])
您可能还需要在调用 base64EncodedString
时尝试不同的选项。
Ok 去了几个兔子洞,发现一些人有类似的问题。我最终通过切换到 Alamofire 而不是使用本机 urlsession 解决了这个问题。我还发现我发布到的服务器也允许 multipart/form-data 以及我最终用于我的请求。我也无法使用本机 urlsession 使其工作。
希望得到一些帮助。我正在尝试 post 将图像发送到服务器,它需要 PNG 文件的 base64 编码。当我使用 PAW 应用程序并对图像进行编码时,服务器上显示的一切都非常漂亮。当我尝试对 iOS Swift 4 执行相同操作时,生成的字符串相似但也有差异,因此图像不正确。关于如何匹配在 iOS 中的 PAW 应用程序中正确创建的字符串的任何想法。我在下面包含了代码以及创建的字符串(小样本)的屏幕截图。
谢谢!
let image : UIImage = UIImage(named:"STG.png")!
let imageData = UIImagePNGRepresentation(image)
var base64String = imageData?.base64EncodedString(options: [])
您根本不是在比较相同的数据。将 png 加载到 UIImage
然后将 UIImage
转换为新的 png 表示根本不会产生相同的字节集。
您需要直接将 png 文件加载到 Data
实例中,而不进行任何转换。
let imageURL = Bundle.main.url(forResource: "STG", withExtension: "png")!
let imageData = try! Data(contentsOf: imageURL)
var base64String = imageData.base64EncodedString(options: [])
您可能还需要在调用 base64EncodedString
时尝试不同的选项。
Ok 去了几个兔子洞,发现一些人有类似的问题。我最终通过切换到 Alamofire 而不是使用本机 urlsession 解决了这个问题。我还发现我发布到的服务器也允许 multipart/form-data 以及我最终用于我的请求。我也无法使用本机 urlsession 使其工作。