Swift UI 和 Alamofire 图片上传
Posted
技术标签:
【中文标题】Swift UI 和 Alamofire 图片上传【英文标题】:Swift UI and Alamofire Image Upload 【发布时间】:2020-04-10 20:29:36 【问题描述】:我是 Swift 新手,并决定在我的项目中尝试使用 Alamofire 进行网络连接。我在网上查了很多指南,但大多数都已经过时了,并且使用 UIImage 而不是 Swift UI Image 类型。
这是我的代码:
@State var image: Image? = nil
....
AF.upload(multipartFormData: multipartFormData in
multipartFormData.append(Data(self.name.utf8), withName: "name")
multipartFormData.append(Data(self.price.utf8), withName: "price")
multipartFormData.append(Data(self.image!), withName: "image")
, to: upload_url, headers: headers)
.responseDecodable(of: WishModel.self) response in
debugPrint(response)
显然来自 Alamofire 的数据结构不支持这种类型。
Cannot invoke initializer for type 'Data' with an argument list of type '(Image)'
另外,我找不到任何可以将 Image 转换为 Base64 类型的方法。解决此问题的唯一方法是将所有 Image 实例替换为 UIImage 吗?
【问题讨论】:
【参考方案1】:尝试将Image
对象转换为UIImage
对象,您可以通过从Data
本身创建UIImage
来实现。
现在,如果您想从图像视图中获取 Data
,则不是从 Image
本身获取它,而是从同一位置 Image
获取它。例如,如果您使用 uiImage 对象加载 Image,则应该转到该 uiImage 对象。如果视图从文件名中获取图像,则应该从文件中获取图像。您将永远无法查询 Image 的二进制文件,这不是框架的设计方式。
【讨论】:
请分享一些代码,这样我就可以通过复制粘贴继续项目!以上是关于Swift UI 和 Alamofire 图片上传的主要内容,如果未能解决你的问题,请参考以下文章