В настоящее время я пытаюсь отправить несколько фотографий с помощью Finjinon SDK на Github, чтобы иметь возможность сделать несколько фотографий и отправить их на мой сервер.Я использую alamofire sdk для обработки отправки реальных изображений.Тем не менее, каждый раз, когда я отправляю фотографии, он случайным образом копирует одну из фотографий и отправляет остальные.Я, честно говоря, совершенно в замешательстве, я не знаю, где вообще начать исправлять эту проблему.
for i in 0..<imageResultsFilter.count {
print(i)
let imageForUpload = imageResultsFilter[i]
if let imageData = UIImageJPEGRepresentation(imageForUpload, 1) {
multipartFormData.append(imageData, withName: "file\(i)", fileName:"image\(i).jpeg", mimeType: "image/jpeg")
}
}
Это мой цикл for, я проверил его и уверен, что проблема не в этом.
Вот так я и отправляю фотографии на свой сервер
// Uploading files to server using Alamofire.
Alamofire.upload(multipartFormData: {
multipartFormData in
for (key, parValue) in parameters {
multipartFormData.append((parValue.data(using: .utf8))!, withName: key)
}
var imageResultsFilter = [UIImage]()
imageResultsFilter = self.imageArray.enumerated().filter({ index, _ in
index % 2 != 0
}).map({ $0.1 })
print(self.imageArray.count)
for i in 0..<imageResultsFilter.count {
print(i)
let imageForUpload = imageResultsFilter[i]
if let imageData = UIImageJPEGRepresentation(imageForUpload, 1) {
multipartFormData.append(imageData, withName: "file\(i)", fileName:"image\(i).jpeg", mimeType: "image/jpeg")
}
}
}, to: urlPath, encodingCompletion: {
encodingResult in
switch encodingResult {
case .success(let upload, _, _) :
upload.responseJSON(completionHandler: {
response in
// Json response from the server
if let jsonValue = response.result.value {
let json = JSON(jsonValue)
// Parsing the response from the server
for (keyTitle, info) in json {
self.alertTitle = "\(keyTitle)"
self.messageText = "\(info)"
}
}
if response.response?.statusCode == 500 {
// Alerts user that there was an Error in uploading the file.
let alert = UIAlertController(title: self.alertTitle, message: self.messageText, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Okay", style: .cancel, handler: nil))
self.present(alert, animated: true, completion: nil)
} else if response.response?.statusCode == 200 {
// Alerts the user that the file succesfully uploaded to server.
let alert = UIAlertController(title: self.alertTitle, message: self.messageText, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Okay", style: .cancel, handler: nil))
self.present(alert, animated: true, completion: nil)
}
})
case .failure(let encodingError):
print("error:\(encodingError)")
}
})
}
Честно говоря, я не знаю, в чем дело.Это не даст мне никаких ошибок, я использую цикл for, потому что каждый раз, когда я делаю снимок, он на самом деле хранит две одновременно.Например, скажем, я беру 3 фотографии.Массив будет заполняться от 0 до 5, я отправляю каждое другое изображение.Тем не менее, когда я вернусь, чтобы сделать еще одну фотографию, она изменится с 0-5 до 0-7.