我正在尝试将图像上传到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)
}
}
我不确定发生了什么或确切的错误是什么。感谢您的帮助。
答案 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)
}