通过Swift 3和Alamofire 4上传带有JSON和自定义标题的照片/文件iOS

编程入门 行业动态 更新时间:2024-10-22 18:38:31
本文介绍了通过Swift 3和Alamofire 4上传带有JSON和自定义标题的照片/文件iOS |迅速的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我需要使用Image文件和JSON调用Multipart请求。

I need to call the Multipart request with Image file and JSON.

我试过这个,但仍然收到错误。

I have tried this, but still getting the error.

// define parameters let parameters = [ "hometown": "yalikavak", "living": "istanbul" ] Alamofire.upload(multipartFormData: { multipartFormData in if let imageData = UIImageJPEGRepresentation(image, 1) { multipartFormData.append(imageData, withName: "file", fileName: "file.png", mimeType: "image/png") } for (key, value) in parameters { multipartFormData.append((value?.data(using: .utf8))!, withName: key) }}, to: "upload_url", method: .post, headers: ["Authorization": "auth_token"], encodingCompletion: { encodingResult in switch encodingResult { case .success(let upload, _, _): upload.response { [weak self] response in guard let strongSelf = self else { return } debugPrint(response) } case .failure(let encodingError): print("error:\(encodingError)") } }) }

如何发送JSON?

推荐答案

在单个请求中尝试使用此代码进行多个上传图像,此代码已经可用。

Try This Code for Multiple upload Images in Single Request, This code is already working.

// For Pass Valid Parameters & number of Images in Array in Image Upload Function var dicImgData : NSMutableDictionary? = NSMutableDictionary() if let img = UIImage(named: "Your Image") { if let data:Data = UIImagePNGRepresentation(img) { var imageData : NSData = data dicImgData! .setObject(imageData, forKey: "data" as NSCopying) dicImgData! .setObject("file", forKey: "name" as NSCopying) dicImgData! .setObject("file.png", forKey: "fileName" as NSCopying) dicImgData! .setObject("image/png", forKey: "type" as NSCopying) let dicParameter = [ "hometown": "yalikavak", "living": "istanbul" ] self.uploadImage(url: "Your URL", Parameter: dicParameter, Images: [dicImgData]) } }

上传功能

func uploadImage (url: String, Parameter param : NSDictionary, Images arrImage: NSArray) -> Void { var requestURL : String! = url let headers = [ "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==", "Accept": "application/json", ] print("---------------------") print("Request URL :- \(requestURL)") print("---------------------") Alamofire.upload(multipartFormData: { (data) in for (key, value) in param { data.append((value as! String).data(using: .utf8)!, withName: key as! String) } for imageInfo in arrImage { var dicInfo : NSDictionary! = imageInfo as! NSDictionary data.append(dicInfo["data"] as! Data, withName: dicInfo["name"] as! String, fileName: dicInfo["fileName"] as! String, mimeType: dicInfo["type"] as! String) dicInfo = nil } }, to: requestURL, method: .post , headers:nil, encodingCompletion: { (encodeResult) in switch encodeResult { case .success(let upload, _, _): upload.responseJSON(completionHandler: { (response) in switch response.result { case .success(let responseJSON): guard let dicResponse = responseJSON as? NSDictionary else{ return } print("Response : \((dicResponse))") case .failure(let error): print(error) break } }) case .failure(let error): print(error) break } }) }

更多推荐

通过Swift 3和Alamofire 4上传带有JSON和自定义标题的照片/文件iOS

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

发布评论

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

>www.elefans.com

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