【问题标题】:Uploading image to firebase storage failing将图像上传到 Firebase 存储失败
【发布时间】:2019-05-07 17:13:51
【问题描述】:

我正在尝试将图像上传到 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)
    }

}

我不确定发生了什么或错误到底是什么。感谢您的帮助。

【问题讨论】:

  • 嗨,@AlvE15,你解决了吗?由于我在尝试将文件上传到 AWS 上的后端时遇到了相同的错误“boringssl_session_errorlog(236)”。文件已上传,我在后端看到,但警告始终存在。

标签: ios swift firebase upload firebase-storage


【解决方案1】:

试试:

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)
                    }
                })
            }
        }
    }
}

【讨论】:

    【解决方案2】:

    试试这个

    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

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2017-09-25
      • 2018-10-24
      • 2019-01-22
      相关资源
      最近更新 更多