我正在尝试使用 Alamofire 上传图片,响应显示成功但图片未上传。当我与后端开发人员一起调试时,请求中似乎缺少文件附件。但是,进度显示文件的上传详细信息。任何人都可以帮助解决这里的问题。
class ImageUploadClient {
class func upload(image: UIImage, to request: URLRequest) {
let imgData = UIImageJPEGRepresentation(image, 0.5)!
let filename = "file.jpeg"
Alamofire.upload(multipartFormData: { (multiPartData) in
multiPartData.append(imgData, withName: filename, mimeType: "image/jpg")
}, usingThreshold: UInt64(1024),
with: request, encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let request, let streamingFromDisk, let fileURL):
debugPrint(streamingFromDisk) // Shows true
debugPrint(fileURL) // Returns file url
debugPrint(request)
// upload progress closure
request.uploadProgress(closure: { (progress) in
print("upload progress: \(progress.fractionCompleted)")
// here you can send out to a delegate or via notifications the upload progress to interested parties
})
// response handler
request.validate()
.responseJSON(completionHandler: { (response) in
switch response.result {
case .success(let value):
debugPrint(value)
case .failure(let err):
debugPrint(err)
}
})
// encodingResult failure
case .failure(let error):
debugPrint(error)
}
})
}
}
最佳答案
尝试为您的图像添加文件名
像这样
和 withName 键将包含服务器上图像的键名
let profileKey = "profileImage"
multiPartData.append(imgData, withName: profileKey, fileName: 文件名, mimeType: "image/jpg")
关于swift - 使用 Alamofire 上传多部分表单数据显示服务器中缺少文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51980213/