Загрузить изображение на сервер с помощью Alamofire Swift 3

Я пытаюсь загрузить изображение внутри таблицы с помощью alamofire на свой сервер. Я использую php в качестве своего бэкэнда и уже сделал часть php. Проблема в том, что я понятия не имею, как реализовать изображение внутри моего кода alamofire. Любая помощь будет оценена спасибо.

//Submit Button///////////////////////

@IBAction func submit(_ sender: UIButton) {

let cell = sender.superview?.superview as! RegisterCell

var variable01 = cell.variable01.text!
var variable02 = cell.variable02.text!

let registerUrl = "http://www.website.com/register.php?var01=\(variable01)&var02=\(variable02)"

let urlEncodedString = registerUrl.replacingOccurrences(of: " ", with: "%20")

self.parseJSON(url: urlEncodedString)

}

//Parse JSON//////////////////////////

func parseJSON(url : String){

Alamofire.request(url).responseJSON(completionHandler: {

response in

self.parseData(JSONData: response.data!)

})}

func parseData(JSONData : Data){

do {

var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONObject

if let signJSON = readableJSON["Register"] as? [JSONObject] {

for i in 0..<signJSON.count {

let JSON = signJSON[i]

let parseStatus = JSON["sendStatus"] as! String

let parseMessage = JSON["sendMessage"] as! String

if parseStatus == "Error" {print("Error"); self.Alert("\(parseMessage)") }

else if parseStatus == "Success" {

performSegue(withIdentifier: "Register01=>Register02", sender: self)}

}}}

catch {print(error)}

}

person Brett Taylor    schedule 11.08.2017    source источник
comment
Возможный дубликат загрузки изображения на сервер с помощью Alamofire   -  person nathan    schedule 11.08.2017
comment
Возможный дубликат загрузки Alamofire 4 с параметрами   -  person Jaydeep Vora    schedule 11.08.2017
comment
Я знаю, что это возможный дубликат. Однако я ищу, как реализовать загрузку фотографий в этом точном коде. Спасибо. В большинстве учебных пособий используются случаи вместо if then, и я их не очень понимаю. А также укажите параметры внутри URL-ссылки.   -  person Brett Taylor    schedule 13.08.2017


Ответы (1)


Пожалуйста, попробуйте это

func commonNetworkCallToUploadImage( imageData : Data,withName : String,fileName : String,header :[String:String],url:String,method:HTTPMethod,parameters : [String:Any]?,completionHandler:@escaping (JSON?,String?)->Void) {

    Alamofire.upload(multipartFormData: { (formData) in
        formData.append(imageData, withName: withName, fileName: fileName, mimeType: "image/jpg")
        for (key,value) in parameters!{
            let components = String(describing: value)
            let data = (components).data(using:.utf8)
            formData.append(data!, withName: key)
        }
        },to: url ,method:method,
          headers:header,
          encodingCompletion:{ (encodingResult) in
            switch encodingResult {
            case .success(let upload,_ , _):
                upload.responseJSON { response in
                    if let data = response.result.value {
                        let json = JSON(data)
                       completionHandler(json,nil)
                    }
                }
            case .failure(let encodingError):
                completionHandler(nil,encodingError.localizedDescription)
            }
    })

}
person Ved Rauniyar    schedule 11.08.2017