func uploadProfileGIF(imageArray: NSMutableArray){
var count = 0
let bucketname = DAO.getBucketNameForLoggedInUser()
let uploadUrl = "https://whatever.com/whatever"
for i in imageArray{
var objectname = "picture" + String(count)
let image = i;
//Turn image into data
let imageData: NSData = UIImagePNGRepresentation(image as! UIImage)!
let params = ["objectname" : objectname, "bucketname" : bucketname!, "isGifImgae" : "True", "content_type" : "image/jpeg"]
let manager = AFHTTPSessionManager()
manager.POST(uploadUrl, parameters: params, constructingBodyWithBlock: { (AFMultipartFormData) in
AFMultipartFormData.appendPartWithFileData(imageData, name: "file", fileName: "image", mimeType: "image/jpeg")
}, progress: nil, success: { (s:NSURLSessionDataTask, response) in
print(response)
}) { (s:NSURLSessionDataTask?, e:NSError?) in
print(e)
}
count+=1
}
}
這是我做到的。希望這可以幫助。它的AlamoFire,它是一個POST請求,我猜只是一種不同的語法。只需一個for循環,爲數組中的每個圖像創建一個API調用。
編輯:
因此,而不是使用for循環和調用API五個單獨的時間,簡單地改變AFMultipartofrmdata的名稱。當您訪問這些文件時,請在您的API中傳入5個文件,然後按名稱訪問它們。例如,我的API抓住文件的方式,這是在Python,像這樣
data = self.request.get('file')
現在的數據是我的形象,我可以把它上傳如此。 只需在同一個API調用中執行這五個不同的時間。
AFMultipartFormData.appendPartWithFileData(imageData1, name: "file1", fileName: "image", mimeType: "image/jpeg")
AFMultipartFormData.appendPartWithFileData(imageData2, name: "file2", fileName: "image", mimeType: "image/jpeg")
AFMultipartFormData.appendPartWithFileData(imageData3, name: "file3", fileName: "image", mimeType: "image/jpeg")
AFMultipartFormData.appendPartWithFileData(imageData4, name: "file4", fileName: "image", mimeType: "image/jpeg")
AFMultipartFormData.appendPartWithFileData(imageData5, name: "file5", fileName: "image", mimeType: "image/jpeg")
然後,只需在for循環中分配名稱和NSData。
然後在API方面,有些東西喜歡這個;
image1 = self.request.get('file1')
image2 = self.request.get('file2')
image3 = self.request.get('file3')
image4 = self.request.get('file4')
image5 = self.request.get('file5')
希望這有助於!這是我改變我的API調用,而不是爲每個用戶調用5次不同的時間。
感謝分享,但我需要在同一個API調用中發送所有圖片:/ – user2636197
我剛更新了答案 –