Alamofire: كيفية إظهار التقدم في تحميل ملف multartFormData؟

تم إنشاؤها على ٢٧ يونيو ٢٠١٧  ·  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)
  }
}
support

التعليق الأكثر فائدة

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 الخاص بنا لتقارير الأخطاء وطلبات الميزات. في المستقبل ، يجب عليك فتح أسئلة مثل هذه على Stack Overflow ووضع علامة على alamofire .

هتافات. 🍻


من إرشادات المساهمة الخاصة بنا

يسأل اسئلة

نحن لا نستخدم GitHub كمنتدى دعم. بالنسبة لأية أسئلة استخدام ليست خاصة بالمشروع نفسه ، يرجى طرحها على Stack Overflow بدلاً من ذلك. من خلال القيام بذلك ، ستكون أكثر قدرة على حل مشكلتك بسرعة ، وستسمح لأي شخص آخر لديه نفس السؤال بالعثور على الإجابة. يسمح هذا أيضًا للمشرفين بالتركيز على تحسين المشروع للآخرين.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات