【发布时间】:2020-10-26 09:02:55
【问题描述】:
我正在开发一个用户必须注册的应用程序。在此过程中,您可以选择个人资料图像。这个过程是这样的:你点击imageView,imagePicker打开(你可以从相机或图库中选择),在你选择一个图像后,picker关闭并且图像被加载到imageview .现在的问题是,如何从imageView.image 创建一个jpeg,以便我可以通过Alamofire 将其上传到后端?
这里是代码:
当通过选择器选择图像时:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let pickedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
//previewImage is the imageView where the image is displayed
previewImage.image = pickedImage
previewImage.layer.cornerRadius = 55
profileView.translatesAutoresizingMaskIntoConstraints = false
profileImageView.isHidden = true
UserData.shared.profilePicture = previewImage.image!
}
dismiss(animated: true, completion: nil)
}
这里是上传图片的方法:
func uploadImage(profileImage: UIImage) {
let image = profileImage.jpegData(compressionQuality: 0.5)
let filename = getDocumentsDirectory().appendingPathComponent("profile.jpeg")
try? image!.write(to: filename)
AF.request(Constants.uploadProfileUrl, method: .post, parameters: ["profile": UIImage(named: "profile")], headers: ["Content-Type":"multipart/form-data", "Authorization": "Bearer "+Configuration.accessToken]) { urlRequest in
}.response { response in
print(response)
switch response.result {
case .success:
self.performSegue(withIdentifier: Constants.successfulRegister, sender: self)
case .failure(let error):
let statusCode = response.response?.statusCode
print(statusCode)
print("fail")
}
}
}
不知何故,我从alamofire 收到了一条成功消息,但图片未显示在后端。
【问题讨论】:
标签: ios swift alamofire alamofireimage