Swift UI 和 Alamofire 图片上传

Swift UI and Alamofire Image Upload

我是 Swift 的新手,决定在我的项目中尝试使用 Alamofire 进行联网。我在网上查了很多指南,但大多数都过时了,使用 UIImage 而不是 Swift UI 图片类型。

这是我的代码:

@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 吗?

尝试将 Image 对象转换为 UIImage 对象,您可以通过从 Data 本身创建 UIImage 来实现。

现在,如果您想从图像视图中获取 Data,您不会从 Image 本身获取它,而是从 Image 获取它的同一位置.例如,如果您使用 uiImage 对象加载图像,您应该转到该 uiImage 对象。如果视图从文件名中获取图像,您应该从文件中获取它。您将永远无法查询 Image 的二进制文件,这不是框架的设计方式。