У меня есть функция загрузки изображения с помощью Alamofire.Когда я загружаю его, изображение повреждено.Но когда я сохраняю его на устройстве, изображение может быть открыто.
Вот код загрузки
Alamofire.upload(multipartFormData: { (_multipartFormData:MultipartFormData) in
for (key, value) in parameters! {
if key == "foto_id" {
_multipartFormData.append(
"\(value)".data(using: String.Encoding.utf8)!,
withName: key,
fileName: "_foto_id.png",
mimeType: "image/png"
)
} else if key == "foto_selfie" {
_multipartFormData.append(
"\(value)".data(using: String.Encoding.utf8)!,
withName: key,
fileName: "_foto_selfie.png",
mimeType: "image/png"
)
} else {
//Data other than image
_multipartFormData.append((value as! String).data(using: .utf8)!, withName: key)
}
}
}, usingThreshold: 1, to: BASE_URL, method: .post) { (encodingResult:SessionManager.MultipartFormDataEncodingResult) in
switch encodingResult {
case .success(let upload, _, _):
upload.responseObject{(response: DataResponse<clsResponsePostFotoID>) in
let reqLoginResponse = response.result.value
completionHandler(reqLoginResponse, nil)
}
break
case .failure(let encodingError):
print(encodingError)
// completionHandler(nil,encodingError as NSError?)
break
}
}
}
Если изменить "\(value)".data(using: String.Encoding.utf8)!
на value as! Data
, будет отображаться ошибка
Cannot invoke 'append' with an argument list of type '(Data?, withName: String, fileName: String, mimeType: String)'
Overloads for 'append' exist with these partially matching parameter lists: (Data, withName: String, fileName: String, mimeType: String), (URL, withName: String, fileName: String, mimeType: String)
Как это исправить?Спасибо