如何使用Alamofire SwiftyJSON将图像上传到JSON swift 3

时间:2018-03-22 21:47:50

标签: ios swift3 alamofire swifty-json

我尝试使用alamofireSwiftyJSON将图片发送到我的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没有更新。

1 个答案:

答案 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