我需要使用
Image文件和
JSON调用Multipart请求.
我试过这个,但仍然得到错误.
- // 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?
在单个请求中尝试使用此代码进行多个上传图像,此代码已经可用.
- // 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,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
- }
- })
- }