Swift 3 Alamofire mehrteiliger Upload
Durch migration, Swift 3, ich finde es schwer zu kompilieren meines Projekts verwendet Alamofire.
Tritt das problem beim hochladen multipartFormData:
Alamofire.upload(.POST, URL, headers: headers, multipartFormData: {
multipartFormData in
.
.
.
})
Mehrdeutige Referenz auf member " hochladen (_:: - Methode: - Header:)'
Jede Hilfe viel geschätzt, danke im Voraus!
GELÖST:
Alamofire.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(fileData, withName: "file_pack", fileName: "file_pack", mimeType: "text/plain")
for (key, value) in self.parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
}, with: URL2, encodingCompletion: { (result) in
switch result {
case .success(let upload, _, _):
upload.responseJSON { response in
self.delegate?.showSuccessAlert()
print(response.request) //original URL request
print(response.response) //URL response
print(response.data) //server data
print(response.result) //result of response serialization
// self.showSuccesAlert()
self.removeImage("frame", fileExtension: "txt")
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
}
case .failure(let encodingError):
self.delegate?.showFailAlert()
print(encodingError)
}
})
Dies ist, wie die upload-Methode umgesetzt werden sollten, Swift 3
InformationsquelleAutor der Frage DCDC | 2016-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beispielsweise mit Alamofire 4.0.0 in Swift 3:
(stellen Sie sicher, dass Sie 4.0.0 bereit, wie es aussieht, haben Sie noch nicht aktualisiert Ihre Alamofire noch)
oder
So
headers
übergeben werden müssen durch URL-Anforderung:InformationsquelleAutor der Antwort pedrouan
Versuchen, diese ein-und url-Satz als @pedrouan sagte.
InformationsquelleAutor der Antwort Mitul Marsoniya
In swift 3, die versuchen, multipartFormData wie @DCDC zeigte in seiner Lösung. XCode versuchen zu werfen, um AnyObject vor .Daten(), so dass anstelle von
Habe ich
In meinem Fall meine var Liste war nicht groß, so hart codierten war eine option.
InformationsquelleAutor der Antwort Jorge Manuel Bello
Für Swift 3 und Alamofire ~4.3.0
Wenn jemand wie ich versucht, get-request-Objekt synchron (ohne die Verwendung von sperren oder dispatch_groups) Sie können diesen Ansatz verwenden:
Bitte beachten Sie, dass Sie benötigen, um
Content-Type
header von IhnenmultipartFormData
als es enthält Grenzen.Wenn Sie nicht brauchen, um Ihr Wunsch-Objekt synchron zu der anderen Antwort mit
arbeitet wie erwartet. Im Falle der erfolgreichen Codierung der Daten es wird Ihnen ein Anfrage-Objekt im callback-Verschluss.
WICHTIGER HINWEIS:wenn Sie verwenden die Methode, die ich beschrieben habe, blockiert der thread (in den meisten Fällen werden Sie wahrscheinlich in der Main-thread) zu kopieren und die Verschlüsselung Ihrer Daten. So verwenden Sie es nicht für große Dateien oder was auch immer. Es ist async im Alamofire auf Zweck.
InformationsquelleAutor der Antwort user1264176