2017-08-11 2 views
0

Im essayant de télécharger une image dans un tableview avec alamofire à mon serveur. J'utilise php comme backend et j'ai déjà fait la partie php. Le problème est que je n'ai aucune idée de comment implémenter l'image dans mon code alamofire. Toute aide serait appréciée Merci.Télécharger l'image au serveur w/Alamofire Swift 3

//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)} 

} 
+0

double possible de [l'image de téléchargement vers le serveur en utilisant Alamofire] (https://stackoverflow.com/questions/40519829/upload-image-to-server-using- alamofire) – nathan

+1

Copie possible de [télécharger Alamofire 4 avec paramètres] (https://stackoverflow.com/questions/39809867/alamofire-4-upload-with-parameters) – Jaydeep

+0

Je sais que c'est un doublon possible. Ce que je cherche cependant est de savoir comment j'implémenterais le téléchargement de photos dans ce code exact. Merci. La plupart des tutoriels utilisent des cas au lieu de si et je ne les comprends pas vraiment. Et également fournir des paramètres à l'intérieur du lien URL. –

Répondre

0

S'il vous plaît essayer

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) 
      } 
    }) 

}