ich den folgenden Code bin mit einem einzigen Bild zu einem Server laden:Hochladen mehrerer Bilder in rascher mit Alamofire
private static func urlRequestWithComponents(urlString:String, parameters:Dictionary<String, String>, imageData:NSData?, imageName: String) -> (URLRequestConvertible , NSData) {
// create url request to send
let mutableURLRequest = NSMutableURLRequest(URL: NSURL(string: urlString)!)
mutableURLRequest.HTTPMethod = Alamofire.Method.POST.rawValue
let boundaryConstant = "myRandomBoundary12345";
let contentType = "multipart/form-data;boundary="+boundaryConstant
mutableURLRequest.setValue(contentType, forHTTPHeaderField: "Content-Type")
// create upload data to send
let uploadData = NSMutableData()
if(imageData != nil && imageData?.length != 0) {
// add image
uploadData.appendData("\r\n--\(boundaryConstant)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
uploadData.appendData("Content-Disposition: form-data; name=\"\(imageName)\"; filename=\"\(StringHelper.sharedInstance.randomString(5)).png\"\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
uploadData.appendData("Content-Type: image/png\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
uploadData.appendData(imageData!)
}
// add parameters
for (key, value) in parameters {
uploadData.appendData("\r\n--\(boundaryConstant)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
uploadData.appendData("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n\(value)".dataUsingEncoding(NSUTF8StringEncoding)!)
}
uploadData.appendData("\r\n--\(boundaryConstant)--\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
print("upload",parameters)
// return URLRequestConvertible and NSData
return (Alamofire.ParameterEncoding.URL.encode(mutableURLRequest, parameters: nil).0, uploadData)
}
Wie kann ich bearbeite diesen Code mehrere Bilder in einzelnen Parameter hochladen?
wie können mehrere Bilder Array in einem einzigen pararmeter hochladen –
Sie können eine Struktur bilden, die alle Ihre func params nimmt, dann eine Funktion erstellen, die ein Array dieser Strukturen nimmt, dann in der Funktion können Sie iterieren das Array und dann ein Array von Anforderungen zurückgeben. Wenn Sie alles auf einmal erledigen möchten, weil Sie nach Abschluss aller Uploads etwas tun müssen, schauen Sie in die Operation-Warteschlange oder in die Dispatch-Gruppe – JustinM
. Weitere Informationen finden Sie unter http://stackoverflow.com/questions/28448837/uploading-multiple- image-files-with-swift, http://stackoverflow.com/questions/40527140/mysql-and-swift-upload-image-and-file-would-it-be-better-to-use-alamofire –