ios将图像上传到Firebase但是当我尝试下载时却不是这样吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios将图像上传到Firebase但是当我尝试下载时却不是这样吗?相关的知识,希望对你有一定的参考价值。
我试图将我的userProfile图像上传到Firebase但是,虽然上传成功但是当我通过firebase控制台上的下载链接下载它时,它被下载为Document文件而不是我上传的jpg文件?此外,当我将图像设置为特定图像时,我的UIImage接管了视图控制器中的所有视图。
这是我的代码:
@IBAction func registerRegisterButton(_ sender: UIButton) {
let userProfileImageRef = self.storage.reference().child("userProfileImage")
//testing image setup
self.registerUserProfileImage.image = UIImage(named:"puppy.jpg")
// Registering user with email
Auth.auth().createUser(withEmail: registerUserEmailTextField.text!, password: registerUserPasswordTextField.text!) { (user, error) in
if error != nil {
print(error)
} else {
print("Registration complete")
// if register succcessful, we upload the user profile image to firebase
let data = Data()
//uploading user profile picture
if let uploadData = UIImagePNGRepresentation(self.registerUserProfileImage.image!) {
userProfileImageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error)
return
} else {
print("Success upload!")
self.dismiss(animated: true, completion: nil)
self.performSegue(withIdentifier: "registrationCompleteSegue", sender: self)
}
})
}
}
}
}
提前谢谢你的帮助
答案
我想您正在尝试下载Image的URL并将其设置为ImageView。如果是,那么创建一个meta data
类型的StorageMetadata
并将content type
设置为image/jpeg
。然后在Firebase Reference的putData
方法中传递它,并使用putData方法的metadata
参数获取ImageURL。
let metaData = StorageMetadata()
metaData.contentType = "image/jpg"
if let uploadData = UIImagePNGRepresentation(self.registerUserProfileImage.image!, 0.8) as NSData {
userProfileImageRef.putData(uploadData as Data, metadata: metaData, completion: { (metadata, error) in
if error != nil {
print(error)
return
} else {
print("Success upload!")
var imageURL = (metadata?.downloadURLs?[0].absoluteString)! //Here's your image url. Then just set it to ImageView
self.dismiss(animated: true, completion: nil)
self.performSegue(withIdentifier: "registrationCompleteSegue", sender: self)
}
})
}
用于设置带URL的图像。请检查此链接https://stackoverflow.com/a/43486949/4608334
以上是关于ios将图像上传到Firebase但是当我尝试下载时却不是这样吗?的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试将图像上传到 Firebase 存储时,putFile 在 kotlin 中不起作用
Firebase-iOS 存储错误代码 -13000:无法完成上传