我正在使用swift 2编写一个应用程序,我需要在后台会话中将照片和视频上传到我的服务器上。出于这个原因,我编写了以下代码:
let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(SessionProperties.identifier)
//let configuration = NSURLSessionConfiguration.defaultSessionConfiguration();
let queue = NSOperationQueue.mainQueue()
// To limit to 1 upload at a time
queue.maxConcurrentOperationCount = 1
let backgroundSession = NSURLSession(configuration: configuration, delegate: self, delegateQueue: queue)
for postingFile in postingFileList {
let request = NSMutableURLRequest(URL: NSURL(string: NetworkUtil().serverUrl+"/upload/upload/v1.0/events/\(postingFile.event.id)/files/\(postingFile.file.id)?frag-start=0&frag-size=\(postingFile.fileSize)")!)
request.HTTPMethod = "POST"
request.setValue("Keep-Alive", forHTTPHeaderField: "Connection")
let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url)
//let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url, completionHandler: { (NSData, NSURLResponse, NSError) in
// print("completion handler")
//})
uploadTask.resume()
}这段代码在以下代码行崩溃:
let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url)上面写着:
正在终止应用程序,因为未捕获异常'NSInvalidArgumentException',原因:‘无法在file:///var/mobile/Media/DCIM/100APPLE/IMG_0361.JPG’读取文件
如果我不使用后台会话,而是使用以下配置:
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration();没有崩溃,上传完成。
你知道在这里使用来自文件的后台会话会发生什么吗?
发布于 2016-08-24 16:01:00
这可能是权限问题。您正在尝试从后台进程访问非沙箱文件URL。尝试将文件移动到本地沙箱目录,然后在后台上传。
https://stackoverflow.com/questions/37340875
复制相似问题