无法打开文件“xxx.mp4",因为您没有查看它的权限 [英] The file “xxx.mp4” couldn’t be opened because you don’t have permission to view it
问题描述
我使用 Alamofire 方法 multipartFormData.append(URL, withName: "file")
将视频上传到服务器,但我收到一条错误消息:
I use the Alamofire method multipartFormData.append(URL, withName: "file")
to upload a video to the server but I've got an error message:
multipartEncodingFailed(Alamofire.AFError.MultipartEncodingFailureReason.bodyPartFileNotReachableWithError(file:///var/mobile/Media/DCIM/100APPLE/IMG_0939.mp4, Error Domain=NSCocoaErrorDomain Code=257 "文件IMG_4"939.无法打开,因为您没有查看权限." UserInfo={NSURL=file:///var/mobile/Media/DCIM/100APPLE/IMG_0939.mp4, NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0939.mp4, NSUnderlyingError=0x174450d10 {Error Domain=NSPOSIXErrorDomain Code=1不允许操作"}}))
multipartEncodingFailed(Alamofire.AFError.MultipartEncodingFailureReason.bodyPartFileNotReachableWithError(file:///var/mobile/Media/DCIM/100APPLE/IMG_0939.mp4, Error Domain=NSCocoaErrorDomain Code=257 "The file "IMG_0939.mp4" couldn’t be opened because you don’t have permission to view it." UserInfo={NSURL=file:///var/mobile/Media/DCIM/100APPLE/IMG_0939.mp4, NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0939.mp4, NSUnderlyingError=0x174450d10 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}))
我打开了那个隐私 - 照片库使用说明,但我收到了这个错误,我不知道.
I have opened that Privacy - Photo Library Usage Description but I got this error and I don't have any idea.
我的代码:
alamofireManager?.upload(
multipartFormData: { multipartFormData in
for i in 0..<videoURLs.count {
multipartFormData.append(videoURLs[i], withName: "file")
}
},
to: url + urlString,
headers: headers,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (progress) in
//Print progress
//print(progress)
})
upload.responseJSON { response in
if let value = response.result.value as? [String: AnyObject]{
success(value)
}
}
case .failure(let encodingError):
failture(encodingError)
}
}
)
推荐答案
您需要使用 startAccessingSecurityScopedResource
if let url = file.url, url.startAccessingSecurityScopedResource() {
multipartFormData.append(url, withName: "some-file.pdf")
// After using the resource make sure you stop the access
if url.startAccessingSecurityScopedResource() {
url.stopAccessingSecurityScopedResource()
}
}
这篇关于无法打开文件“xxx.mp4",因为您没有查看它的权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!