首页 文章

将图像上传到firebase存储失败

提问于
浏览
0

我正在尝试将图像上传到firebase存储,但由于某种原因,它失败了 . 当我尝试上传控制台打印重复错误时,请参见下文:

2018-12-05 20:00:25.691278-0700 AppName [47183:10835564] [BoringSSL] boringssl_session_errorlog(236)[C4.1:2] [0x159ef2a60] [boringssl_session_write] SSL_ERROR_SYSCALL(5):操作在库外部失败2018-12-05 20:00:25.693021-0700 AppName [47183:10835564] [BoringSSL] boringssl_session_errorlog(236)[C4.1:2] [0x159ef2a60] [boringssl_session_write] SSL_ERROR_SYSCALL(5):操作在库2018外部失败-12-05 20:00:25.697283-0700 AppName [47183:10835564] [BoringSSL] boringssl_session_errorlog(236)[C4.1:2] [0x159ef2a60] [boringssl_session_write] SSL_ERROR_SYSCALL(5):操作在库外部失败

我的代码如下:

func uploadImage(_ image: UIImage){
    let storage = Storage.storage()
    let storageRef = storage.reference()
    let imageRef = storageRef.child("images")

    if let data: Data = image.pngData() {
        imageRef.putData(data, metadata: nil)
    }

}

我不确定发生了什么或错误究竟是什么 . 谢谢你的帮助 .

2 回答

  • 0

    try this

    fileprivate lazy var storageRef: StorageReference = Storage.storage().reference(forURL: "gs://fir-chat-80ed9.appspot.com")
    
    func imagePickerController(_ picker: UIImagePickerController,
                                       didFinishPickingMediaWithInfo info: [String : Any]) {
                let image = info[UIImagePickerControllerOriginalImage] as! UIImage
    
                if let key = sendPhotoMessage() {
        //            let data = UIImagePNGRepresentation(image)!
                    let data = UIImageJPEGRepresentation(image, 0.1)!
                    let fileManager = FileManager.default;
                    let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("file.png")
                    do {
                        if(fileManager.fileExists(atPath: url.path)) {
                            try fileManager.removeItem(at: url)
                        }
                        try data.write(to: url)
                    }
                    catch let error {
                        print(error)
                    }
                    let path = "\(Auth.auth().currentUser!.uid)/\(Int(Date.timeIntervalSinceReferenceDate * 1000))/\(Int(Date.timeIntervalSinceReferenceDate * 1000)).png"
                    storageRef.child(path).putFile(from: url, metadata: nil, completion: { (metadata, error) in
                        if let error = error {
                            print("Error uploading photo: \(error.localizedDescription)")
                            return
                        }
                        // 7
                        self.setImageURL(self.storageRef.child((metadata!.path)!).description, forPhotoMessageWithKey: key)
                    })
                }
                picker.dismiss(animated: true, completion:nil)
        }
    

    https://github.com/vshalvaghasiya/FireBaseChat

  • 0

    尝试:

    func uploadPhoto(picture:UIImage?) {
        if let img = picture, let data = UIImageJPEGRepresentation(img, 1){
            let path = "\(NSDate.timeIntervalSinceReferenceDate)" // name of image
            let metaData = StorageMetadata()
            metaData.contentType = "image/jpg"
            let ref = Storage.storage().reference().child("images").child(path)
            ref.putData(data, metadata: metaData) { (mData, error) in
                if error == nil{
                    ref.downloadURL(completion: { (url, error) in
                        if error == nil{
                            print(url?.absoluteString)
                        }
                    })
                }
            }
        }
    }
    

相关问题