Я знал, что могу сделать это для обычной загрузки:
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)
}
Но как мне показать прогресс загрузки multipartFormData?
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)
}
}
Большое спасибо. Оно работает.
В любом случае показать прогресс обычного http запроса?
К сожалению, мы используем наш проект GitHub для отчетов об ошибках и запросов функций. В будущем вы должны открывать подобные вопросы в Stack Overflow и отмечать alamofire
.
Ваше здоровье. 🍻
Из наших правил участия
Мы не используем GitHub в качестве форума поддержки. По любым вопросам использования, не относящимся к самому проекту, задавайте вместо них Stack Overflow . Таким образом вы с большей вероятностью решите свою проблему и позволите любому, кто задает такой же вопрос, найти ответ. Это также позволяет разработчикам сосредоточиться на улучшении проекта для других.
Самый полезный комментарий