Téléchargez des images multiples dans swift à l'aide de Alamofire
J'utilise le code suivant pour télécharger une image unique pour un serveur:
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)
}
Comment puis-je télécharger plusieurs images dans un seul paramètre en modifiant ce code?
- comment pouvez télécharger des images multiples de tableau dans un seul pararmeter
- Vous pouvez faire une structure qui prend tous vos func params, puis de créer une fonction qui prend un tableau de ces structures, puis dans la fonction, vous pouvez parcourir le tableau et retourne un tableau de demandes. Si vous voulez tout faire à la fois parce que vous avez besoin de faire quelque chose lorsque tous les téléchargements sont terminés, d'examiner le Fonctionnement de la file d'attente ou de l'Envoi Groupe
- Veuillez consulter le lien stackoverflow.com/questions/28448837/..., stackoverflow.com/questions/40527140/...
Vous devez vous connecter pour publier un commentaire.
Swift 3
Suffit d'utiliser "[]" avec l'upload d'images param pour faire tableau d'images.
imagesData
tableau. le problème est qu'il est primordial de l'image précédente valeur de données lors de la création de mutipartFormData à l'aide de l'itération. Mais en ajoutant[ ]
entre crochets à la fin de l'param name il est capable de charger les données dans le tableau. C'est tout. Même chose que vous pouvez voir dans le postier application à télécharger tableau d'images. Merci. Veuillez upvote si c'est ok.Ce un m'aide:
Il ressemble à cette question a déjà été répondu, et probablement dans plusieurs endroits. Voici un lien que j'ai trouvé:
Comment télécharger plusieurs images en plusieurs parties à l'aide de Alamofire?
Je vais coller leur solution pour des raisons de commodité, mais ils ont dit qu'il travaille pour Swift 3.x:
La solution semble être basé sur l'approche recommandée détaillée dans le Alamofire documentation ici: https://github.com/Alamofire/Alamofire#uploading-multipartformdata
voici ma solution et il sera à 100% pas de bugs..
dans ce imagetoupload tableau est le tableau des données de l'image que j'ai faite avant.