如何使用 Alamofire 将用户配置文件图像保存到 MYSQL 数据库,然后在以下屏幕上检索
Posted
技术标签:
【中文标题】如何使用 Alamofire 将用户配置文件图像保存到 MYSQL 数据库,然后在以下屏幕上检索【英文标题】:How to save user profile image using Alamofire to MYSQL database then retrieve on the following screen 【发布时间】:2017-02-24 01:40:03 【问题描述】:我正在创建一个用户配置文件,我想将用户的图像保存到我的 mysql 数据库中。最初,我将用户的性别、生日和关系状态保存到 User 类,但是我决定添加用户个人资料图像。该附加代码如下:
func updateUser(UserGender: String, UserBirthday: Date, UserStats: String, UserImage: UIImage, completion: @escaping (String?, String?) -> Void)
let dicParams = [
"user_gender" : UserGender,
"user_birthday" : UserBirthday,
"user_stats" : UserStats,
"user_image" : UserImage
] as [String : Any]
Alamofire.request("\(Constants.Server.URL)/users",
method: .put,
parameters: dicParams,
headers: header)
.validate()
.responseJSON (response) in
switch response.result
case .success(let value as [String: String]):
completion(value[Constants.Server.RESPONSE_MESSAGE], nil)
case .failure(_):
completion(nil, self.getErrorString(ErrorData: response.data!))
default:
completion(nil, "Unkown Error")
我很好奇,因为如果我需要使用 UIImageJPEGRepresentation 或在请求中包含任何其他信息,或者当我在以下屏幕上调用它以填充 UIImageView 以将其包装为 UIImage 对象时,它是一个图像。任何帮助将不胜感激。
【问题讨论】:
如果我错了,请纠正我,但参数会出现在 PUT 请求的 URL 中,所以我不确定指定日期或图像实际上会做什么。 Alamofire 可能足够聪明,可以将日期转换为合适的字符串,但是图像呢?您可能希望将二进制数据放入请求的正文中。而且我对从 SQL 数据库存储和检索二进制数据的最佳实践一无所知。 【参考方案1】:您不需要直接保存在数据库中。下载图像时,将其保存到应用程序的文档目录中,并将其路径保存到数据库中。无论您需要在哪里显示,只需从文档目录中读取图像,因为您的数据库中有它的路径并将其设置为 imageView。
【讨论】:
以上是关于如何使用 Alamofire 将用户配置文件图像保存到 MYSQL 数据库,然后在以下屏幕上检索的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Alamofire Swift 4 将图像填充到 UICollectionView