Swift UI和Alamofire图片上传

问题描述 投票:0回答:1

我是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吗?

ios swift swiftui alamofire alamofireimage
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.