2
Я пытаюсь загрузить изображение, используя Alamofire, но сервер не получает изображение. Это код, где я сделать загрузку:Alamofire multipartFormData upload не отправляет данные
Alamofire.upload(Router.UpdateUserAvatar,
multipartFormData: { (multipartFormData) -> Void in
let compressionQuality: CGFloat = 0.8
guard let imageData = UIImageJPEGRepresentation(image, compressionQuality) else {
print("Unable to get JPEG representation for image \(image)")
callCompletion()
return
}
multipartFormData.appendBodyPart(data: imageData, name: ParameterKey.Avatar, mimeType: "image/jpeg")
}, encodingCompletion: { (encodingResult) -> Void in
switch encodingResult {
case .Success(request: _, streamingFromDisk: _, streamFileURL: _):
finalResult = Result.Success(self)
callCompletion()
case .Failure(let errorType):
let error = errorType as NSError
finalResult = Result.failureForError(error, data: nil)
callCompletion()
}
}
)
Благодарим вас за это! Это работает и для меня. Но немного путайте меня сейчас, почему мне нужно дать этому файлу имя, так как я никогда не буду использовать его на стороне сервера. Может быть, некоторые настройки сервера помогают 'appendBodyPart' работать без избыточного параметра fileName? .. – user3537411
В моем случае это потому, что библиотека, которую мы используем на стороне сервера, требует имя, даже если мы его не используем. – Juan
как насчет аудиофайла в Alamofire 4? - Я пытаюсь отправить аудиофайл в этой форме: multipartFormData.append (audioLocalPath, withName: "file", fileName: "file", mimeType: "application/octet-stream"), но возникает эта ошибка: multipartEncodingFailed (Alamofire.AFError .MultipartEncodingFailureReason.bodyPartFileNotReachableWithError (файл: /// var/mobile/Containers/....... /Documents/item.mp3, NSUnderlyingError = 0x16049100 {Ошибка домена = NSPOSIXErrorDomain Код = 2 "Нет такого файла или каталога"}})) - где проблема? -бад-запрос или плохой аудио-путь? – Saeid