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 的名称即可。当您访问文件时,传入 5 个文件,然后在您的 API 中,只需按名称访问它们。例如,我的 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 次不同的时间。