我对Alamorefire
使用Swift 3
,但收到错误:Ambiguous reference to member 'upload
。
这是我的代码:
Alamofire.upload(.post, url,
multipartFormData: { multipartFormData in
// import parameters
for i in 0 ..< params.count {
for (key, value) in params[i] {
multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
}
}
// import image to request
multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "file.jpg", mimeType: "image/jpeg")
}, // you can customise Threshold if you wish. This is the alamofire's default value
encodingMemoryThreshold: SessionManager.multipartFormDataEncodingMemoryThreshold,
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response.result)
}
case .Failure(let encodingError):
print(encodingError)
}
})
我的代码出了什么问题?
答案 0 :(得分:8)
尝试以下代码
Alamofire.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(UIImageJPEGRepresentation(self.photoImageView.image!, 0.5)!, withName: "photo_path", fileName: "swift_file.jpeg", mimeType: "image/jpeg")
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
}, to:"http://server1/upload_img.php")
{ (result) in
switch result {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (Progress) in
print("Upload Progress: \(Progress.fractionCompleted)")
})
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)
}
}