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 图片上传的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift中使用alamofire上传图库图片

swift Alamofire图片上传

使用 Alamofire swift 4 上传文件

Swift中的Alamofire分段上传帖子错误

如何在 alamofire 中同步上传图片?

alamofire上传带json参数的图片