由于迁移到 Swift 3,我发现很难编译我使用 Alamofire 的项目。
上传multipartFormData时出现问题:
Alamofire.upload(.POST, URL, headers: headers, multipartFormData: {
multipartFormData in
.
.
.
})
非常感谢任何帮助,提前致谢!
已解决:
Alamofire.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(fileData, withName: "file_pack", fileName: "file_pack", mimeType: "text/plain")
for (key, value) in self.parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
}, with: URL2, encodingCompletion: { (result) in
switch result {
case .success(let upload, _, _):
upload.responseJSON { response in
self.delegate?.showSuccessAlert()
print(response.request) // original URL request
print(response.response) // URL response
print(response.data) // server data
print(response.result) // result of response serialization
// self.showSuccesAlert()
self.removeImage("frame", fileExtension: "txt")
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
}
case .failure(let encodingError):
self.delegate?.showFailAlert()
print(encodingError)
}
})
这是上传方法应该在 Swift 3 中实现的方式
最佳答案
例如,在 Swift 3 中使用 Alamofire 4.0.0 :
(确保您已准备好 4.0.0,因为您似乎还没有更新您的 Alamofire)
Alamofire.upload(multipartFormData: { (multipartFormData) in
// code
}, to: URL, encodingCompletion: { (result) in
// code
})
要么
Alamofire.upload(multipartFormData: { (multipartFormData) in
// code
}, with: URL, encodingCompletion: { (result) in
// code
})
所以
headers
需要通过 URL 请求传递:let URL = try! URLRequest(url: "http://example.com", method: .get, headers: headers)
关于ios - Swift 3 Alamofire 分段上传,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39592085/