この簡単なコードを使用して画像をfirebaseストレージにアップロードしています。Firebase Storageに画像をアップロードする
let imageName = UUID().uuidString
let storageRef = FIRStorage.storage().reference().child("Devices_Images").child("\(imageName).png")
// let metaData = FIRStorageMetadata()
// metaData.contentType = "image/png"
if let uploadData = UIImagePNGRepresentation(self.ImageView.image!) {
storageRef.put(uploadData, metadata: nil, completion: { (data, error) in
if error != nil {
print(error)
} else {
print("Image Uploaded Succesfully")
let profileImageUrl = data?.downloadURL()?.absoluteString
}
私はこのエラーを取得しておいてください。
[Generic] Creating an image format with an unknown type is an error
は実際に変換し、画像の種類は、すべてのPNGです!なぜ私はこのエラーが発生し続けているのですか?
画像はこことしてalpumやカメラからアップロードされています
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let theInfo:NSDictionary = info as NSDictionary
let img:UIImage = theInfo.object(forKey: UIImagePickerControllerOriginalImage) as! UIImage
ImageView.image = img
self.dismiss(animated: true, completion: nil)
}
@IBAction func AddPictureBtnAction(_ sender: AnyObject) {
// addPictureBtnAtion.enabled = false
let alertController : UIAlertController = UIAlertController(title: "أضف جهازًا", message: "التقط صورة من الكاميرا أو اختر من الألبوم", preferredStyle: .actionSheet)
let cameraAction : UIAlertAction = UIAlertAction(title: "صورة من الكاميرا", style: .default, handler: {(cameraAction) in
print("camera Selected...")
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) == true {
self.imagePicker.sourceType = .camera
self.present()
}else{
self.present(self.showAlert("عذرًا", Message: "الكاميرا ليست متاحة في هذا الجهاز أو تم منع الوصول لها!"), animated: true, completion: nil)
}
})
let libraryAction : UIAlertAction = UIAlertAction(title: "صورة من الألبوم", style: .default, handler: {(libraryAction) in
print("Photo library selected....")
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) == true {
self.imagePicker.sourceType = .photoLibrary
self.present()
}else{
self.present(self.showAlert("عذرًا", Message: "ألبوم الصور ليس متاحًا في هذا الجهاز أو تم منع الوصول له!"), animated: true, completion: nil)
}
})
let cancelAction : UIAlertAction = UIAlertAction(title: "إلغاء", style: .cancel , handler: {(cancelActn) in
print("Cancel action was pressed")
})
alertController.addAction(cameraAction)
alertController.addAction(libraryAction)
alertController.addAction(cancelAction)
alertController.popoverPresentationController?.sourceView = view
alertController.popoverPresentationController?.sourceRect = view.frame
self.present(alertController, animated: true, completion: nil)
}
func present(){
self.present(imagePicker, animated: true, completion: nil)
}
/* func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
print("info of the pic reached :\(info) ")
self.imagePicker.dismissViewControllerAnimated(true, completion: nil)
} */
//Show Alert
func showAlert(_ Title : String!, Message : String!) -> UIAlertController {
let alertController : UIAlertController = UIAlertController(title: Title, message: Message, preferredStyle: .alert)
let okAction : UIAlertAction = UIAlertAction(title: "Ok", style: .default) { (alert) in
print("User pressed ok function")
}
alertController.addAction(okAction)
alertController.popoverPresentationController?.sourceView = view
alertController.popoverPresentationController?.sourceRect = view.frame
return alertController
}
何か! –
あなたの子供( "\(imageName).png")のPNGを取り除く –