2016-06-27 10 views
1

@IBAction {スウィフトfirebaseファイルアップロード

//Social Share Buttons.. 

     let shareActionsheet = UIAlertController(title: "Share with", message: nil, preferredStyle: .ActionSheet) 
    //Facebook 
    let Facebook = UIAlertAction(title: "Facebook", style: .Default){(Alert:UIAlertAction!) -> Void in 
    let shareFacebook : SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook) 
     //screenShot 
     UIGraphicsBeginImageContextWithOptions(CGSizeMake(306, 441.5), false, 0) 
     self.view.drawViewHierarchyInRect(CGRectMake(-35, -35, self.view.bounds.size.width, self.view.bounds.size.height), afterScreenUpdates: true) 
     let image:UIImage = UIGraphicsGetImageFromCurrentImageContext() 
     UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil) 
     //screenShot finish 

//レコード生成のスクリーンショット画像
//shareFacebook.addImage(image)

 self.presentViewController(shareFacebook, animated: true, completion: nil) 


     if let user = FIRAuth.auth()?.currentUser{ 



     //dosya upload - servise referans sağla.. 
     let storage = FIRStorage.storage() 

     //referans yolu 
     let storageRef = storage.referenceForURL("gs://creawo-80503.appspot.com") 

     let data: NSData = NSData() 
     // Create a reference to the file you want to upload 
     let riversRef = storageRef.child("\(self.user!.uid+"/share_pic.jpg")/") 

     // Upload the file to the path "images/rivers.jpg" 
     let uploadTask = riversRef.putData(data, metadata: nil) { metadata, error in 
      if (error != nil) { 
       // Uh-oh, an error occurred! 
      } else { 

Iパスを示しとファイルの作成。アラートで画像内のスクリーンショットを撮っていますか? firebaseをインストールしたい //メタデータには、サイズ、コンテンツタイプ、ダウンロードURLなどのファイルメタデータが含まれています。

I couldn't find a solution about this place   
let downloadURL = metadata!.downloadURL() 
      } 
     } 

}

答えて

0
@IBAction func postAd(sender: AnyObject) { 
    self.name = self.textField.text! 
    self.category = (self.chooseButton.titleLabel?.text)! 
    self.subcat = self.subcategory.text! 

    if (self.name != "" && self.category != "" && self.subcat != ""){ 

     self.price = Int(self.priceField.text!)! 
     self.transaction = (self.transactionButton.titleLabel?.text 
     )! 

     let book = ["productId": self.productId, 
        "name": self.name, 
        "parentId": self.parentId, 
        "price": self.price, 
        "transaction":self.transaction, 
        "category":self.category, 
        "subcat":self.subcat] 
     let childUpdates = ["products/\(productId)": book] 


     let data: NSData = UIImageJPEGRepresentation(imagePreview.image!, 0.8)! 

     // Create a reference to the file you want to upload 
     let metadata = FIRStorageMetadata() 
     metadata.contentType = "image/jpeg" 
     // Upload the file to the path "images/rivers.jpg" 
     let uploadTask = storageRef.child("\(productId)").putData(data, metadata: nil) { metadata, error in 
      if (error != nil) { 
       // Uh-oh, an error occurred! 
       print("Error") 
      } else { 
       print("Successfully posted") 
       // Metadata contains file metadata such as size, content-type, and download URL. 
       let downloadURL = metadata!.downloadURL() 
       print(downloadURL) 
      } 
     } 
     print(uploadTask) 


     self.ref.updateChildValues(childUpdates) 

     self.performSegueWithIdentifier("productToHome", sender: self) 
    } 
    else{ 
     let alert:UIAlertController = UIAlertController(title: "Fill all details", message: "Please Enter all details", preferredStyle: UIAlertControllerStyle.Alert) 
     alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)) 
     self.presentViewController(alert, animated: true, completion: nil) 
     print("Fill all the details") 
    } 
} 

私は、データベース内の本の内容をアップロードしています。 「メタデータ」部分は、これまでのように使用できます。 ここで 'imagePreview'にはimagePickerから選択された画像が含まれます。画像を選択する機能を以下に示します。

//Internal function to select image and preview it in Image View 
// MARK: - UIImagePickerControllerDelegate Methods 
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo editingInfo: [String : AnyObject]) { 
    if let pickedImage = editingInfo[UIImagePickerControllerOriginalImage] as? UIImage { 
     imagePreview.contentMode = .ScaleAspectFit 
     imagePreview.image = pickedImage 
    } 
    dismissViewControllerAnimated(true, completion: nil) 
} 

func imagePickerControllerDidCancel(picker: UIImagePickerController) { 
    dismissViewControllerAnimated(true, completion: nil) 
} 
//Image Viewer Ends 
+0

ありがとうBharat :) +100 –

+0

@OğuzMuslu返信ありがとうございます。あなたの問題を解決した場合、正しい答えを設定してください。 –

関連する問題