хорошо я пишу этот ответ, чтобы вы могли настроить свой код. поэтому
во-первых, я рекомендую вам создать функцию, которая получает данные изображения с заголовками URL. например.
func uploadPictureUser(headers: [String:String], image:Data, completion: @escaping ((Bool) -> Void))
{
alamoFireManager!.upload(multipartFormData: { (MultipartFormData) in
MultipartFormData.append(image, withName: "NAME-PARAM-ENDPOINT", fileName: "NAMEIMAGE", mimeType: "image/png")
}, usingThreshold: UInt64.init(), to: "URL ENDPOINT IMAGE", method: .post, headers: headers)
{ (result) in
switch result{
case .success(let upload, _, _):
upload.responseJSON { response in
if let _ = response.result.value as? [String:Any]{
completion(true)
return
}
completion(false)
}
case .failure( _):
completion(false)
}
}
}
в этом примере у fleName нет расширения, конечной точке не нужен параметр, но включены заголовки
, теперь как мне преобразовать изображение в данные? Я создал этот забавный c, потому что иногда изображение является самым большим для загрузки, и теперь вы можете изменить его качество
enum JPEGQuality: CGFloat {
case lowest = 0
case low = 0.25
case medium = 0.5
case high = 0.75
case highest = 1
}
func jpeg(_ jpegQuality: JPEGQuality) -> Data? {
return jpegData(compressionQuality: jpegQuality.rawValue)
}
, вы можете использовать этот код следующим образом.
qualityImage = yourImage.jpeg(.medium)
let headers = [
"Authorization" : "JWT " + userProfile.login.userLoginHome!.token
]
uploadPictureUser(headers: headers, image: qualityImage) { (flag) in
if flag{
print("image was uploaded")
} else{
print("error")
}
}
Итак, я надеюсь, что этот код поможет вам правильно. С уважением