2017-09-26 13 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

4つのアップロードがある場合(4つの個別のアップロードについて、4つのファイルをアップロードして1つのリクエストではないと仮定しています)、各Alamofire uploadオブジェクトには既に独自のuploadProgressプロパティがあります。

あなたがUIProgressViewを使用しているのであれば、あなたはすべての(あなたはあなたの例で行うように)uploadProgress方法を実装する必要はありませんが、むしろちょうどuploadProgressプロパティにごUIProgressViewobservedProgressを設定アラモファイヤーのupload

-1

NSOperationQueueとNSOperationを使用してください。イメージのダウンロードを実行するには、NSOperationをサブクラス化する必要があります。イメージのダウンロードの進行状況を識別するために、イメージIDまたはURLを使用します。また、ブロックを使用して、オブザーバに進捗状況を更新するよう通知することもできます。

関連する問題