Ios Swift将音频文件上载到Firebase
您好,我尝试将m4a文件上载到Firebase存储,但始终出现错误“error Domain=FIRStorageErrorDomain Code=-13000”出现未知错误,请检查服务器响应 ResponseBody=无法完成上载。当前大小为38298。预期最终大小为34554 这是我的代码:Ios Swift将音频文件上载到Firebase,ios,swift,firebase,firebase-storage,Ios,Swift,Firebase,Firebase Storage,您好,我尝试将m4a文件上载到Firebase存储,但始终出现错误“error Domain=FIRStorageErrorDomain Code=-13000”出现未知错误,请检查服务器响应 ResponseBody=无法完成上载。当前大小为38298。预期最终大小为34554 这是我的代码: func uploadSound(localFile: URL) { let storageRef = FIRStorage.storage().reference() let imag
func uploadSound(localFile: URL) {
let storageRef = FIRStorage.storage().reference()
let imagesRef = storageRef.child("upload")
let fileName = "/" + self.deviceID + ".m4a"
let uploadTask = spaceRef.putFile(localFile, metadata: nil) { metadata, error in
if let error = error {
print(error)
} else {
// Metadata contains file metadata such as size, content-type, and download URL.
let downloadURL = metadata!.downloadURL()
}
}
}
感谢您的帮助。谢谢您创建了以下未使用的变量:
let imagesRef = storageRef.child("upload")
let fileName = "/" + self.deviceID + ".m4a"
上传时,您正在呼叫:
// where is `spaceRef`?
spaceRef.putFile(localFile, metadata: nil)
作为建议,不妨尝试:
let newFileRef = imagesRef.child(fileName)
let uploadTask = newFileRef.putFile(localFile, metadata: nil) { metadata, error in
if let error = error {
print(error)
} else {
// Metadata contains file metadata such as size, content-type, and download URL.
let downloadURL = metadata!.downloadURL()
}
}
创建以下变量,这两个变量都未使用:
let imagesRef = storageRef.child("upload")
let fileName = "/" + self.deviceID + ".m4a"
上传时,您正在呼叫:
// where is `spaceRef`?
spaceRef.putFile(localFile, metadata: nil)
作为建议,不妨尝试:
let newFileRef = imagesRef.child(fileName)
let uploadTask = newFileRef.putFile(localFile, metadata: nil) { metadata, error in
if let error = error {
print(error)
} else {
// Metadata contains file metadata such as size, content-type, and download URL.
let downloadURL = metadata!.downloadURL()
}
}
您也必须将元数据和文件作为数据发送,请尝试此操作。对于swift5
let metadata = StorageMetadata()
metadata.contentType = "audio/m4a"
let riversRef = Storage.storage().reference().child("message_voice").child("\(self.getDate()).m4a")
do {
let audioData = try Data(contentsOf: recorder.url)
riversRef.putData(audioData, metadata: metadata){ (data, error) in
if error == nil{
debugPrint("se guardo el audio")
riversRef.downloadURL {url, error in
guard let downloadURL = url else { return }
debugPrint("el url descargado", downloadURL)
}
}
else {
if let error = error?.localizedDescription{
debugPrint("error al cargar imagen", error)
}
else {
debugPrint("error de codigo")
}
}
}
} catch {
debugPrint(error.localizedDescription)
}
您也必须将元数据和文件作为数据发送,请尝试此操作。对于swift5
let metadata = StorageMetadata()
metadata.contentType = "audio/m4a"
let riversRef = Storage.storage().reference().child("message_voice").child("\(self.getDate()).m4a")
do {
let audioData = try Data(contentsOf: recorder.url)
riversRef.putData(audioData, metadata: metadata){ (data, error) in
if error == nil{
debugPrint("se guardo el audio")
riversRef.downloadURL {url, error in
guard let downloadURL = url else { return }
debugPrint("el url descargado", downloadURL)
}
}
else {
if let error = error?.localizedDescription{
debugPrint("error al cargar imagen", error)
}
else {
debugPrint("error de codigo")
}
}
}
} catch {
debugPrint(error.localizedDescription)
}
嗨,布拉德利,我想我的存储安全没有问题,因为我可以从AT上传带有数据的图像。仍然一样,我试图用数据更改,但文件似乎已损坏,上传成功但无法播放嗨,布拉德利,我想我的存储安全没有问题,因为我可以从AT上传带有数据的图像。仍然一样,我试图用数据更改但文件似乎已损坏,上传成功但无法播放嘿,旅行者,你找到解决方案了吗?嘿,旅行者,你找到解决方案了吗?