[英]Saving and retrieving an image from parse in swift
我有一個稱為ProfilePage
的類,在該類中,我選擇要顯示為個人資料圖片的圖像。 我已經使用ImagePickerController成功打開了圖像。 但是,我無法將此圖像上傳到Parse.com儀表板到“用戶”類中。
我正在嘗試將圖像從UIImagePicker上傳到Parse.com。 我遵循了一些教程,並查看了用於上傳文件的文檔,但它們都將其添加到解析中的新“類”中。 我希望能夠上傳到“用戶”類中,其中有一個名為“個人資料圖片”的字段
class ProfilePage: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate{
@IBOutlet weak var backButton: UIButton!
@IBOutlet weak var profilePicture: UIImageView!
@IBOutlet weak var editProfilePicture: UIButton!
@IBOutlet weak var nameTag: UILabel!
@IBOutlet weak var Bio: UILabel!
@IBOutlet weak var saveProfileChanges: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
nameTag.text = ((PFUser.current()?.username)!)
}
@IBAction func didTapSaveProfileChanges(_ sender: Any) {
PFUser.current()?.username = "Kane"
do {
try PFUser.current()?.saveInBackground(block: { (success, error) in
if error != nil {
print("unable to save new username")
}
else {
print("new username saved")
self.viewDidLoad()
}
})
} catch {
print("unable to save new username")
}
@IBAction func didTapBackButton(_ sender: Any) {
self.performSegue(withIdentifier: "GoToHomePage", sender: self)
}
@IBAction func didTapChooseImage(_ sender: Any) {
let imagePickerController = UIImagePickerController()
imagePickerController.delegate = self
let actionSheet = UIAlertController(title: "Photo Source", message: "Choose a source", preferredStyle: .actionSheet)
actionSheet.addAction(UIAlertAction(title: "Camera", style: .default, handler: { (action:UIAlertAction) in
if UIImagePickerController.isSourceTypeAvailable(.camera) {
imagePickerController.sourceType = .camera
self.present(imagePickerController, animated: true, completion: nil)
}
else {
print("There no is no camera available")
}
}))
actionSheet.addAction(UIAlertAction(title: "Photo Library", style: .default, handler: { (action:UIAlertAction) in
imagePickerController.sourceType = .photoLibrary
self.present(imagePickerController, animated: true, completion: nil)
}))
actionSheet.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
self.present(actionSheet, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
profilePicture.image = image
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
如果有人有任何建議,將不勝感激。
這是我的代碼,我使用此代碼將圖片上傳到銀行
let profileImageData = UIImageJPEGRepresentation(photoProfile.image!,0.00001)
var myPFObj = PFObject(className:"YouClass")
let myFile = PFFile(name: "ProfilePic", data: profileImageData!)
myPFObj.setObject(myFile!, forKey: "profile_picture")
myPFObj.saveInBackgroundWithBlock {
(success: Bool, error: Error?) -> Void in
if (success) {
} else {
}
}
我希望能有所幫助。
首先,重要的是要查看有關從parse.com遷移的遷移文檔,因為它將很快關閉。
現在到您的問題。 這是swift 3中當前登錄用戶的示例。
@IBOutlet weak var profilePicture: UIImageView!
// ImagePicker delegate
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
profilePicture.image = image
}
dismiss(animated: true, completion: nil)
}
@IBAction func updateProfileImage(_ sender: AnyObject) {
let userToUpdate = PFUser.current()!
// Save Avatar
if profilePicture.image != nil {
let imageData = UIImageJPEGRepresentation(avatarImg.image!, 0.5)
let imageFile = PFFile(name:"avatar.jpg", data:imageData!)
userToUpdate["profilePicture"] = imageFile
}
// Saving block
userToUpdate.saveInBackground(block: { (succ, error) in
if error == nil {
print("Your Profile has been updated!")
} else {
print("Failed")
}})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.