Alamofire: рдЕрдкрд▓реЛрдб рдорд▓реНрдЯреАрдкрд╛рд░реНрдЯрдлреЙрд░реНрдордбрд╛рдЯрд╛ рдкреНрд░рдЧрддрд┐ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдПрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬреВрди 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Alamofire/Alamofire

рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрдкрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

let fileURL = Bundle.main.url(forResource: "data", withExtension: "zip")

Alamofire.upload(fileURL!, to: "http://localhost:3000/upload")
    .uploadProgress { progress in // main queue by default
        print("Upload Progress: \(progress.fractionCompleted)")
    }
    .responseJSON { response in
        debugPrint(response)
}

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдорд▓реНрдЯреАрдкрд╛рд░реНрдЯрдлреЙрд░реНрдордбрд╛рдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдЧрддрд┐ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдиреА рдЪрд╛рд╣рд┐рдП?

Alamofire.upload(multipartFormData: { (multipartFormData) in
  let path = "\(Bundle.main.resourcePath!)/images"
  let all = try? FileManager.default.contentsOfDirectory(at: URL(string: path)!, includingPropertiesForKeys: nil, options: [])

  let filtered = all!.filter { $0.pathExtension == "jpg" }
  for item in filtered {
      let url = URL(fileURLWithPath: item.path, isDirectory: false)
      multipartFormData.append(url, withName: "photos", fileName: url.lastPathComponent, mimeType: "image/jpeg")
  }
}, to: "http://localhost:3000/upload") {
  (encodingResult) in
  switch encodingResult {
  case .success(let upload, _, _):
      upload.responseJSON { response in
          debugPrint(response)
      }
  case .failure(let encodingError):
      print(encodingError)
  }
}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

Alamofire.upload(multipartFormData: { (multipartFormData) in
    ...
}, to: "http://localhost:3000/upload") {
  (encodingResult) in
  switch encodingResult {
  case .success(let upload, _, _):
      upload.uploadProgress(closure: { (progress) in
           print("Upload Progress: \(progress.fractionCompleted)")
      })
      upload.responseJSON { response in
          debugPrint(response)
      }
  case .failure(let encodingError):
      print(encodingError)
  }
} 

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Alamofire.upload(multipartFormData: { (multipartFormData) in
    ...
}, to: "http://localhost:3000/upload") {
  (encodingResult) in
  switch encodingResult {
  case .success(let upload, _, _):
      upload.uploadProgress(closure: { (progress) in
           print("Upload Progress: \(progress.fractionCompleted)")
      })
      upload.responseJSON { response in
          debugPrint(response)
      }
  case .failure(let encodingError):
      print(encodingError)
  }
} 

рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИрдВред
рд╡реИрд╕реЗ рднреА рд╕рд╛рдорд╛рдиреНрдп http рдЕрдиреБрд░реЛрдз рдХреА рдкреНрд░рдЧрддрд┐ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП?

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╣рдо рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ GitHub рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдкрдХреЛ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╢реНрди рдЦреЛрд▓рдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░ alamofire рдЯреИрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЪреАрдпрд░реНрд╕ред рдореИрдВ


рд╣рдорд╛рд░реЗ рдпреЛрдЧрджрд╛рди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ

рд╕рд╡рд╛рд▓ рдкреВрдЫ рд░рд╣реА рд╣реИ

рд╣рдо рдПрдХ рд╕рдорд░реНрдерди рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ GitHub рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реНрд╡рдпрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдкреВрдЫреЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рдЖрдк рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЙрд╕реА рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред рдпрд╣ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

hengchengfei picture hengchengfei  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DrAma999 picture DrAma999  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

solomon23 picture solomon23  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matthijsotterloo picture matthijsotterloo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ