gpt4 book ai didi

swift2 - Alamofire - 如何通过分段上传实现进度和完成关闭

转载 作者:行者123 更新时间:2023-12-04 16:27:09 25 4
gpt4 key购买 nike

我设法使用 multipart-form-data Alamofire 上传上传文件:

Alamofire.upload(.POST, "api.myservice.com", headers: myheaders, multipartFormData: { (multipartFormData:MultipartFormData) -> Void in

multipartFormData.appendBodyPart(data: json, name: "metadata", mimeType: "application/json")
multipartFormData.appendBodyPart(data: self.data, name: "document", fileName: "photo.png", mimeType: "image/png")

}, encodingMemoryThreshold: 10 * 1024 * 1024) { (result:Manager.MultipartFormDataEncodingResult) -> Void in
}

但我看不到跟踪上传进度并在上传完成(或失败)后调用完成块的方法。有没有办法在 Alamofire 中做到这一点?

注意:我知道可以随进度上传,但我正在专门研究 multipart-form-data。

最佳答案

这是一种完成、失败和进度关闭的方法(感谢我的同事为我指出解决方案):

Alamofire.upload(.POST, absPath(), headers: headers(), multipartFormData: { (multipartFormData:MultipartFormData) -> Void in

multipartFormData.appendBodyPart(data: json, name: "metadata", mimeType: "application/json")
multipartFormData.appendBodyPart(data: self.data, name: "document", fileName: "photo.png", mimeType: "image/png")

}, encodingMemoryThreshold: 10 * 1024 * 1024, encodingCompletion: { (encodingResult) -> Void in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { response in
// success block
}
upload.progress { _, totalBytesRead, totalBytesExpectedToRead in
let progress = Float(totalBytesRead)/Float(totalBytesExpectedToRead)
// progress block
}
case .Failure(_):
// failure block
}
})

关于swift2 - Alamofire - 如何通过分段上传实现进度和完成关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34053882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com