在iOS swift中将图像上载到服务器
我是斯威夫特的新手 我不知道如何使用Alamofire将图像从UIImage Piker控制器上传到服务器。不幸的是,从上周开始,我尝试了stackOverflow和Google等的许多解决方案。但我想不出来 请任何人帮帮我 现在我尝试实现以下代码:在iOS swift中将图像上载到服务器,ios,swift,alamofire,iosdeployment,Ios,Swift,Alamofire,Iosdeployment,我是斯威夫特的新手 我不知道如何使用Alamofire将图像从UIImage Piker控制器上传到服务器。不幸的是,从上周开始,我尝试了stackOverflow和Google等的许多解决方案。但我想不出来 请任何人帮帮我 现在我尝试实现以下代码: func uploadImgRiderAPI(){ print("I am in uploadImgAPI") let imgData = UIImageJPEGRepresentation(profilePic
func uploadImgRiderAPI(){
print("I am in uploadImgAPI")
let imgData = UIImageJPEGRepresentation(profilePicOut.image!, 0.2)! //Error: UIImageJPEGRepresentation' has been replaced by instance method 'UIImage.jpegData(compressionQuality:)'
let parameters : [String : Any] = ["image": imgData, "riderId" : "5ed4eecfe3ec0c6b7c8e4990"]
guard let url = URL(string: "\(Constents.baseURL)/rider/uploadImage") else {
print("Invalid URL")
return
}
AF.upload(multipartFormData: { multipartFormData in
multipartFormData.append(imgData, withName: "image",fileName: "alkaram.png", mimeType: "image/jpg")
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8), withName: key) // Error: Cast 'Any' to 'AnyObject' or use 'as!' to force downcast to a more specific type to access members
}
}, to:url) { (result) in
switch result {
case .success(let upload, _, _): //Error : Pattern cannot match values of type 'URLRequest'
upload.uploadProgress(closure: { (progress) in
print("Upload Progress: \(progress.fractionCompleted)")
})
upload.responseJSON { response in
print(response.result.value)
if let result = response.data {
do {
let jsonData = try JSONEncoder().encode(parameters)
let jsonString = String(data: jsonData, encoding: .utf8)
let url = URL(string: self.retrivedRiderProfileImg!)
print("Complete URL is :-> \(url)")
let placeholderImage = UIImage(named: "referral_icon")!
self.profilePicOut.af_setImage(withURL: url!, placeholderImage: placeholderImage)
print("JSON String : " + jsonString!)
print("And Responce is : \(response)")
} catch {
print(error)
}
}
}
case .failure(let encodingError): //Error : Pattern cannot match values of type 'URLRequest'
print(encodingError)
}
}
}
首先,您需要用新的
jpegData(压缩质量:)
方法替换uiimagejpegresentation
的旧API
替换此项:
let imgData = UIImageJPEGRepresentation(profilePicOut.image!, 0.2)!
case .success(let upload, _, _):
为此:
guard let imgData = profilePicOut.image?.jpegData(compressionQuality: 0.2) else { return }
case .success(let upload):
并替换案例
,其中仅返回URLRequest的一个参数,以仅接受一个参数作为错误状态
替换此项:
let imgData = UIImageJPEGRepresentation(profilePicOut.image!, 0.2)!
case .success(let upload, _, _):
为此:
guard let imgData = profilePicOut.image?.jpegData(compressionQuality: 0.2) else { return }
case .success(let upload):
首先,您需要用新的
jpegData(压缩质量:)
方法替换uiimagejpegresentation
的旧API
替换此项:
let imgData = UIImageJPEGRepresentation(profilePicOut.image!, 0.2)!
case .success(let upload, _, _):
为此:
guard let imgData = profilePicOut.image?.jpegData(compressionQuality: 0.2) else { return }
case .success(let upload):
并替换案例
,其中仅返回URLRequest的一个参数,以仅接受一个参数作为错误状态
替换此项:
let imgData = UIImageJPEGRepresentation(profilePicOut.image!, 0.2)!
case .success(let upload, _, _):
为此:
guard let imgData = profilePicOut.image?.jpegData(compressionQuality: 0.2) else { return }
case .success(let upload):
那么您面临的问题是什么呢?case.success(let upload,,,://错误:模式无法匹配'URLRequest'let imgData=UIImageJPEGRepresentation(profilePicOut.image!,0.2)类型的值//错误:UIImageJPEGRepresentation'已被实例方法'UIImage.jpegData(压缩质量:)'case.failure(let encodingError)://错误:模式无法匹配'URLRequest'类型的值,那么您面临的问题是什么?case.success(let upload,uu,u)://错误:模式无法匹配“URLRequest”let imgData=UIImageJPEGRepresentation(profilePicOut.image!,0.2)类型的值//错误:UIImageJPEGRepresentation'已被实例方法'UIImage.jpegData(压缩质量:)'case.failure(let encodingError)://错误:模式无法匹配'URLRequest'case.success类型的值(let upload)://模式无法匹配'URLRequest'multipartFormData.append类型的值((值为AnyObject)。数据(using:String.Encoding.utf8),with name:key)//无法使用类型为“(using:String.Encoding)”的参数列表调用“data”case.success(让我们上载)://模式无法匹配类型为“URLRequest”的值multipartFormData.append((值为AnyObject)。数据(using:String.Encoding.utf8),with name:key)//无法使用类型为“(使用:String.Encoding)”的参数列表调用“data”