我尝试使用alamofire
和SwiftyJSON
将图片发送到我的API。我一直在尝试一些不同的方法来做到这一点,但到目前为止还没有成功。我尝试的最后一个是base64EncodedString
并且无效。我有变量styleStrength作为JSON。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]){
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
self.profileImage.image = image
self.profileImage.isHidden = false
self.profileImage.contentMode = UIViewContentMode.scaleAspectFill
let imageData = UIImagePNGRepresentation(image)
let base64String = imageData!.base64EncodedString(options: [])
var styleStrengthData = JobSeekerBuildProfile.loadJobSeekerBuildProfile()
styleStrengthData["Personal_Style"]["profile_pic_file"].stringValue = base64String + ".jpg"
JobSeekerBuildProfile.storeJobSeekerBuildProfile(j: styleStrengthData)
}else{
//error message
}
self.dismiss(animated: true, completion: nil)
}
作为回报,我有一个非常庞大的图像名称,但API没有更新。
答案 0 :(得分:0)
尝试使用UIImageJPEGRepresentation而不是UIImagePNGRepresentation。
在代码中替换这些行
let imageData = UIImagePNGRepresentation(image)
let base64String = imageData!.base64EncodedString(options: [])
styleStrengthData["Personal_Style"]["profile_pic_file"].stringValue = base64String + ".jpg"
使用
let imageData = UIImageJPEGRepresentation(image,0.5)! as NSData
let strBase64ProfilePic = imageData.base64EncodedString()
styleStrengthData["Personal_Style"]["profile_pic_file"].stringValue = base64String