将图片上传到Firebase存储失败

时间:2018-12-06 03:14:06

标签: ios swift firebase upload firebase-storage

我正在尝试将图像上传到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):对库的外部操作< / p>

我的代码如下:

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 :(得分: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)
                    }
                })
            }
        }
    }
}

答案 1 :(得分:0)

尝试

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

相关问题