Как передать изображение профиля с другими параметрами в API, используя Alamofire 5 в Swift 5 - PullRequest
0 голосов
/ 10 мая 2019
AF.request(urlString, method: .post, parameters: paramValue,encoding: URLEncoding.queryString, headers: ["accesstoken": "123456"]).responseJSON {
            response in

            switch response.result {
            case .success(let JSON):
                print("Login Response NSDictionary---->>",JSON as! NSDictionary)
                delegate?.didSuccess(result: JSON as! NSDictionary, withID: "login")

                break
            case .failure(let error):
                print("error----->>",error)
                delegate?.didError(result: error, withID: "login")
            }
        }

1 Ответ

0 голосов
/ 10 мая 2019

Попробуйте это. Это решает мою проблему

class func uploadImage(_ strURL: String, parameters: [String: Any]?,image: UIImage?,keyImage : String, success:@escaping apiSuccess, failure:@escaping apiFailure) {
        print(parameters as Any)
        var UrlFinal = ""
        do
        {
            try UrlFinal = baseURL + strURL.asURL().absoluteString
        }
        catch{

        }
        Alamofire.upload(
            multipartFormData: { MultipartFormData in

                for (key, value) in (parameters)! {
                    print((key, value))
                    MultipartFormData.append((value as! String).data(using: String.Encoding.utf8)!, withName: key)
                }
                if image != nil{
                    guard let imageData = image!.jpegData(compressionQuality: 1) else { return }

                    MultipartFormData.append(imageData, withName: keyImage, fileName: "file1.jpeg", mimeType: "image/jpeg")
                }

        }, to: UrlFinal) { (result) in

            switch result {
            case .success(let upload, _, _):

                upload.uploadProgress(closure: { (progress) in
                    print("Upload Progress: \(progress.fractionCompleted)")

                })
                upload.responseJSON { response in
                    if let res = response.result.value{
                        print(res)
                        Global.appDelegate.hideLoader()
                        success(res)
                    }else{

                    }
                }
            case .failure(let encodingError):
                print(encodingError)
                failure(encodingError)
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...