2016-11-15 5 views
0

Ich muss ein ziemlich großes Projekt mit verschiedenen Datentypen konvertieren, die als multiparts hochgeladen werden müssen. Dafür habe ich mehrere Strukturen erstellt, die die benötigten MultipartFormData Objekte erstellen.MultipartData an Alamofire.upload übergeben

Einige der Uploads sind eher klein, andere sind größer. Ich untersuche also die Methode .upload() von Alamofire (v4).

Diese Methode hat eine Schließung zum Anhängen von Teilen an das Objekt multipartFormData.

Alamofire.upload(
    multipartFormData: { multipartFormData in 
      // do stuff here 
    } 

Aber ich habe nicht einen Weg passieren mein bestehendes MultipartformData Objekt dieser Methode gefunden.

Es sollte wie sein:

self.parts = MultipartformData() 
... 
// do stuff with self.parts 
... 

Alamofire.upload(
    multipartFormData: { multipartFormData in 
      multipartFormData = self.parts 
    } 

Aber das funktioniert nicht, wie ich die folgende Fehlermeldung erhalten:

Parameter können nicht die ‚var‘ spezifizierer haben

Ich verwende XCode 8.1, Alamofire 4 und Swift 3.

Vielen Dank!

Antwort

0

Try unten Code:

let image = UIImage.init(named: "myImage") 
let imgData = UIImageJPEGRepresentation(image!, 0.2)! 

let parameters = ["name": rname] 

Alamofire.upload(multipartFormData: { multipartFormData in 
     multipartFormData.append(imgData, withName: "fileset",fileName: "file.jpg", mimeType: "image/jpg") 
     for (key, value) in parameters { 
       multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
      } 
    }, 
to:"mysite/upload.php") 
{ (result) in 
    switch result { 
    case .success(let upload, _, _): 

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

     upload.responseJSON { response in 
      print(response.result.value) 
     } 

    case .failure(let encodingError): 
     print(encodingError) 
    } 
} 
+0

, die nicht als MultipartformData funktioniert nicht zur Folge entsprechen. Ich habe meine Frage mit einer spezifischeren Beschreibung darüber, was ich weitergeben möchte, aktualisiert. –