Swift如何使用不同的文件名将图像上传到Firebase?

时间:2018-10-11 11:04:13

标签: ios swift firebase firebase-storage

我是IOS的新手,请考虑。我的问题是,每当我上传图片时,它都只是替换现有图片。

现在,我要上传具有唯一文件名的图像。我正在从相机拍摄图像。

func uploadtofirebase(){

        let imagepath = UIImagePNGRepresentation(self.imagebutton.image!)
        if imagepath == nil {
            return
        }
        var strURL = "imagePickerController.png"

       let storage = Storage.storage()
       let storageRef = storage.reference().child("IosImages/").child(strURL)
          print("calling here successfully ")
        storageRef.putData(imagepath!, metadata:nil,completion:
            {(metadata,error) in storageRef.downloadURL(completion: { (url, error) in

                if let urlText = url?.absoluteString{
                    strURL = urlText
                    print("///////////tttttttt//////// \(strURL)   ////////")
                    //completion(strURL)
                    print("passed activity")
                    self.startReceivingLocationChanges()
                }
            })
        })
}

注意:.child(strURL)我认为strURL必须使其动态。我已经在android中完成了,但是我却无法使用iOS。

1 个答案:

答案 0 :(得分:2)

您只需要动态创建图像名称。像这样的'20181010045120.png'。您可以使用类似这样的功能来生成它

 func generateImageName() -> String {
    let date = Date()
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyyMMddHHmmSS"
    let result = formatter.string(from: date)
    return "\(result).png"
 }

只需调用此函数,您将每次获得新的图像名称。这也很有用,因为它包含生成日期的时间。