【问题标题】:Unable to successfully Encode UIImage and store in Database无法成功编码 UIImage 并存储在数据库中
【发布时间】:2016-01-01 01:00:03
【问题描述】:

我希望将 UIImage 转换为 NSData(这部分有效),然后将该 NSData 编码为字符串,以便我可以通过 Alamofire POST 请求将其存储到我的数据库中。
这是我到目前为止的代码以及我在 Swift 2 中尝试过的不同编码方法:

let a = spaceImage.image
let imageData = UIImagePNGRepresentation(a!)

//First method
let base64String = imageData!.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)

//Second method
let base64String2 = imageData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))

//Third method
let base64String3 = String(data: imageData!, encoding: NSUTF8StringEncoding)

因此,每种方法都有一个特定的问题。

第一种方法,我得到这个错误:

失败:错误域=NSCocoaErrorDomain 代码=3840“字符 0 周围的值无效。” UserInfo={NSDebugDescription=字符 0 周围的值无效。}

第二种方法,我得到与第一种方法相同的错误:

失败:错误域=NSCocoaErrorDomain 代码=3840“字符 0 周围的值无效。” UserInfo={NSDebugDescription=字符 0 周围的值无效。}

第三种方法,当我打印这个字符串时,它是 nil,所以这显然也不起作用。

请记住,我使用 Swift 2 和 Alamofire 来发出 POST 请求(以 JSON 编码)。实现我想要做的事情的正确方法是什么?

【问题讨论】:

    标签: ios image encoding swift2 alamofire


    【解决方案1】:

    我猜这是 alamorefire 错误。如果你打电话,在你的邮政编码中

    Alamorefire.request().responseJSON() 
    

    试试这个。

    Alamorefire.request().responseString() 
    

    【讨论】:

    • 当我做响应字符串时,我收到以下错误,即使请求有效:<body><h1>request entity too large</h1><h2>413</h2><pre>Error: request entity too large 当我查看数据库时,我试图发布的项目显然不存在。还有其他帮助吗?
    • 似乎这是服务器问题...您可以发送小字符并检查。可能是 let base64String3 = "hello world" 。试试这个 。在您的要求中?
    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2023-03-17
    • 2017-12-04
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    相关资源
    最近更新 更多