使用Swift将图像另存为Firebase作为Image/JPEG



我正在尝试使用MIME类型的Image/jpeg上传图片,但由于某些原因,它们都将其上传为应用程序/Octet-Stream。

Heres我的代码段:

let storageRef = Storage.storage().reference().child("ProfilePictures/(image).jpg")
        if let uploadData = UIImageJPEGRepresentation(self.pickedImage!, 0.5){
            storageRef.putData(uploadData, metadata: nil, completion:{ (metadata, error) in })

我通过照片库的选择器获得了图像

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let editedImage = info[UIImagePickerControllerEditedImage] as? UIImage {
        ImageButton.setBackgroundImage(editedImage, for: .normal)
        ImageButton.setTitle("", for: .normal)
        self.pickedImage = editedImage
    }
    dismiss(animated: true, completion: nil)
}

您必须为同一设置元数据。

尝试。

metadata = {contentType:'image/jpeg'};

let imageNode = storageRef.child("imagePath/(UUID().uuidString)")
let metaData = StorageMetadata()
metaData.contentType = "image/jpeg"
imageNode.putData(data, metadata: metaData) { (_, _) in
}

说明:

如果我们在没有任何元数据的情况下上传文件数据,它将识别为应用程序/八位钟。由于数据的未知格式或(缺少扩展),它保存为二进制文件,即八位字节文件。

鉴于该指定文件或数据类型,我们需要定义其ContentType。我们可以通过分配媒体类型来做到这一点,这也称为 MIME协议

一些常见的 MIME类型

扩展 Mime Type
.gif 图像/gif
.html 文本/html
.jpg或.jpeg 图像/jpeg
.mp4 视频/MP4

最新更新