我需要将一个大的json(包含一个UIImage作为base64)文件上传到服务器,并希望跟踪进度。我尝试使用Alamofire,但似乎首先上传文件,只有响应可以进行。我不能使用multipart,因为API不支持。当只发送一个body-json时,甚至可以获得上传进度吗?
答案 0 :(得分:1)
它似乎与upload
方法一起使用,json转换为数据。使用一些随机图像和模拟api进行测试。
let imageData = UIImagePNGRepresentation(UIImage(named: "test")!)!
let json = ["test": imageData.base64EncodedString(options: .lineLength64Characters)]
let jsonData = try? JSONSerialization.data(withJSONObject: json, options: .prettyPrinted)
self.sessionManager.upload(jsonData!, to: "https://demo1752132.mockable.io/test", method: .post).responseJSON { dataResponse in
}.uploadProgress { progress in
print("Upload Progress: \(progress.fractionCompleted)")
}
答案 1 :(得分:0)
正如我尝试过的那样,答案是否。我已经成功完成了文件的进展,而对于body-json,我无法跟踪进度。
我将尝试解释可能与您类似的情况。我必须上传包含文本的多个图像。对我们来说,媒体的API是不同的。我的意思是每个图像我必须上传到服务器并获得响应。在最后的请求中,我必须发送所有收集的URL以及json正文中的文本。在这种情况下,我跟踪了所有成功上传的图片并展示了它。在收到最终请求时,我无法跟踪它。
很高兴知道如果有人发现跟踪它。