如何解决Swift Alamofire:不支持给定URL的字节流类型
我有一个应用程序,可以在FileManager中本地记录音频,然后使用Alamofire将其上传到服务器。一切正常,但不幸的是,某些音频无法以某种方式上传。假设如果我上载30个音频,则每30个上载音频就会失败。我认为字节以某种方式损坏了,服务器抛出了一个错误,因为它无法处理它,但是如果我单击音频播放,则可以很好地播放和听到它。服务器返回417错误:**不支持给定URL的字节流类型。 **
下面是我用来将音频上传到服务器的一段代码:
Alamofire.upload(multipartFormData: { (multipartFormData) in
do {
let jsonData = try JSONSerialization.data(withJSONObject: dataDict,options: .prettyPrinted)
multipartFormData.append(jsonData,withName: "dicuyuotation")
} catch {
print(error.localizedDescription)
}
multipartFormData.append("\(true)".data(using: String.Encoding.utf8)!,withName: "isLastSlice")
for (key,value) in param {
multipartFormData.append(value.data(using: String.Encoding.utf8)!,withName: key)
}
if recordingData != nil {
multipartFormData.append(recordingData!,withName: "data",fileName: "recording.aac",mimeType: "audio/aac")
}
},usingThreshold: 10_000_000,to: url!,method: .post,headers: headers) { (encodingResult) in
switch encodingResult {
case .success(let upload,_,_) :
upload.uploadProgress(closure: { (progress) in
progressBlock(progress)
})
upload.responseJSON {
response in
if response.response?.statusCode == 200
{
successBlock(response)
}
else
{
failureBlock(response)
}
}
break
case .failure(let encodingError):
failureBlock(encodingError as! DataResponse<Any>)
break
}
}
Alamofire是否可能无法正确读取字节,或者iOS是否以某种方式持有/锁定了文件?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。