如何使用Alamofire 5.0.0

编程入门 行业动态 更新时间:2024-10-18 06:01:03
本文介绍了如何使用Alamofire 5.0.0-beta.3(Swift 5)上传图像(多部分)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在使用分段上传图片.此代码可以在 swift 4 和 Alamofire 4中正常工作..请为此提供任何解决方案.

I am working on uploading image using multipart. This Code Working fine in swift 4 and Alamofire 4. Please give any solution for this.

public class func callsendImageAPI(param:[String: Any],arrImage:[UIImage],imageKey:String,URlName:String,controller:UIViewController, withblock:@escaping (_ response: AnyObject?)->Void){ Alamofire.upload(multipartFormData:{ MultipartFormData in for (key, value) in param { MultipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key) } for img in arrImage { guard let imgData = img.jpegData(compressionQuality: 1) else { return } MultipartFormData.append(imgData, withName: imageKey, fileName: FuncationManager.getCurrentTimeStamp() + ".jpeg", mimeType: "image/jpeg") } },usingThreshold:UInt64.init(), to: "URL", method:.post, headers:["Content-type": "multipart/form-data", "Content-Disposition" : "form-data"], encodingCompletion: { encodingResult in switch encodingResult { case .success(let upload, , ): upload.uploadProgress(closure: { (Progress) in print("Upload Progress: \(Progress.fractionCompleted)") }) upload.responseJSON { response in switch(response.result) { case .success(_): let dic = response.result.value as! NSDictionary if (dic.object(forKey: "status")! as! Int == 1){ withblock(dic.object(forKey: "data") as AnyObject) }else if (dic.object(forKey: Message.Status)! as! Int == 2){ print("error message") }else{ print("error message") } case .failure(_): print("error message") } } case .failure(let encodingError): print("error message") } })}

谢谢.

推荐答案

请参考以下代码.

public class func callsendImageAPI(param:[String: Any],arrImage:[UIImage],imageKey:String,URlName:String,controller:UIViewController, withblock:@escaping (_ response: AnyObject?)->Void){ let headers: HTTPHeaders headers = ["Content-type": "multipart/form-data", "Content-Disposition" : "form-data"] AF.upload(multipartFormData: { (multipartFormData) in for (key, value) in param { multipartFormData.append((value as! String).data(using: String.Encoding.utf8)!, withName: key) } for img in arrImage { guard let imgData = img.jpegData(compressionQuality: 1) else { return } multipartFormData.append(imgData, withName: imageKey, fileName: FuncationManager.getCurrentTimeStamp() + ".jpeg", mimeType: "image/jpeg") } },usingThreshold: UInt64.init(), to: URL.init(string: URlName)!, method: .post, headers: headers).response{ response in if((response.error != nil)){ do{ if let jsonData = response.data{ let parsedData = try JSONSerialization.jsonObject(with: jsonData) as! Dictionary<String, AnyObject> print(parsedData) let status = parsedData[Message.Status] as? NSInteger ?? 0 if (status == 1){ if let jsonArray = parsedData["data"] as? [[String: Any]] { withblock(jsonArray as AnyObject) } }else if (status == 2){ print("error message") }else{ print("error message") } } }catch{ print("error message") } }else{ print(response.error!.localizedDescription) } } }

很高兴为您提供帮助:)

Happy to help you :)

更多推荐

如何使用Alamofire 5.0.0

本文发布于:2023-11-26 13:31:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1634024.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   Alamofire

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!