我使用下面的代码进行上传进度,但如果我上传4张图片,如何获得个人上传的进展。
Alamofire.upload(multipartFormData:{ multipartFormData in
multipartFormData.append(data, withName: alamoName, fileName: alamoFileName, mimeType: alamoMimeType)
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
},to:requestUrl){ (result) in
switch result {
case .success(let upload, _,_):
upload.uploadProgress(closure: { (progress) in
print("Upload Progress:%d", progress)
})
upload.responseJSON { response in
if(response.result.value != nil){
let uploadResponse = response.result.value as! Dictionary <String ,Any>
self.didUpdateResponse(sender: uploadResponse)
}
}
case .failure(let encodingError):
print(encodingError)
}
答案 0 :(得分:0)
如果您有四次上传(我假设我们正在谈论四次单独的上传而不是一次上传四个文件的请求),则每个Alamofire upload
对象都已拥有自己的uploadProgress
属性。
因此,如果您正在使用UIProgressView
,则根本不需要实施uploadProgress
方法(就像您在示例中所做的那样) ,而只是将observedProgress
的{{1}}设置为Alamofire UIProgressView
的{{1}} 属性。
答案 1 :(得分:-1)
请使用NSOperationQueue和NSOperation。您需要继承NSOperation以执行图像下载。使用图像ID或URL来区分图像下载进度。此外,您可以使用该块通知观察者更新进度。