2017-09-26 111 views
1

我正在使用下面的代碼上傳進度,但如果我上傳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

看到這個https://github.com/Alamofire/Alamofire/issues/1652#issuecomment-259020449 –

+0

看到這個也https://github.com/Alamofire/Alamofire/issues/989 –

回答

0

如果您有四個上傳文件(我假設我們正在討論四個獨立的上傳文件,而不是上傳四個文件的單個請求),則每個Alamofire upload對象都有其自己的uploadProgress屬性。

所以,如果你正在使用UIProgressView,你並不需要實現uploadProgress方法在所有(就像你在你的例子一樣),而是隻設置你的UIProgressViewuploadProgress財產observedProgress的阿拉莫菲爾upload

-1

請使用NSOperationQueue和NSOperation。你需要子類化NSOperation來執行圖像的下載。使用圖片ID或網址來區分圖片下載進度。此外,您可以使用該塊通知觀察者更新進度。