【发布时间】:2018-04-04 11:00:59
【问题描述】:
我需要使用 alamofire 将视频上传到服务器。用户选择视频,我在 didFinishPickingMediaWithInfo 中成功获取 URL,如下所示:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
picker.dismiss(animated: true, completion: nil)
if let pickedVideo = info[UIImagePickerControllerMediaURL] as? URL {
print(pickedVideo)
}
}
然后我使用以下代码上传视频:
Alamofire.upload( multipartFormData: { multipartFormData in
multipartFormData.append(videoUrl, withName: "video", fileName: "video.mp4", mimeType: "video/mp4")
}, to: url, encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
if let JSON = response.result.value as? NSDictionary {
completion(true)
} else {
completion(false)
print(response)
}
}
case .failure(let encodingError):
print(encodingError)
completion(false)
}
})
进入失败块,显示如下错误:
multipartEncodingFailed(Alamofire.AFError.MultipartEncodingFailureReason.bodyPartFileNotReachableWithError(atURL: 文件:/private/var/mobile/Containers/Data/Application/C662AB0E-6A4F-40FB-9949-7F0A5AA2BA49/tmp/52C86F07-5DCC-413A-9F8C-71BBF33F793C.MOV -- file:///, error: Error Domain=NSCocoaErrorDomain Code=260 “文件“52C86F07-5DCC-413A-9F8C-71BBF33F793C.MOV”无法打开,因为 没有这样的文件。
【问题讨论】:
-
视频不能通过URL上传,转换成
Data对象再上传。 -
向我们展示您创建
videoUrl的代码