gpt4 book ai didi

ios - uploadTaskWithRequest 后台 session fromFile 崩溃

转载 作者:行者123 更新时间:2023-11-28 06:43:09 26 4
gpt4 key购买 nike

我正在使用 swift 2 编写一个应用程序,我需要在后台 session 中将照片和视频上传到我的服务器上。出于这个原因,我写了这段代码:

        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”而终止应用程序,原因:“无法在文件中读取文件:///var/mobile/Media/DCIM/100APPLE/IMG_0361.JPG”

如果我不使用后台 session ,而是使用这个配置:

let configuration = NSURLSessionConfiguration.defaultSessionConfiguration();

没有崩溃,上传完成。

您知道使用来自文件的后台 session 会发生什么吗?

最佳答案

这可能是权限问题。您正在尝试从后台进程访问非沙盒文件 URL。尝试将文件本地移动到您的沙箱目录,然后在后台上传。

关于ios - uploadTaskWithRequest 后台 session fromFile 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37340875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com