【发布时间】:2016-06-02 01:18:49
【问题描述】:
我想使用 NSURLSession 将文件上传到服务器。
案例是: 1.它应该恢复上传文件到由于应用程序崩溃而停止的服务器。 2. 它也应该处理后台上传。
【问题讨论】:
标签: ios nsurlsessionuploadtask
我想使用 NSURLSession 将文件上传到服务器。
案例是: 1.它应该恢复上传文件到由于应用程序崩溃而停止的服务器。 2. 它也应该处理后台上传。
【问题讨论】:
标签: ios nsurlsessionuploadtask
尝试AFNetworkingLibrary异步上传图片。你可以在this thread找到一个简单的例子。
【讨论】:
你应该使用背景NSURLSession。如果您的应用程序在上传过程中崩溃或用户离开了应用程序,则在背景为NSURLSession 的情况下,上传将在后台无缝继续。上传完成后,您的应用程序将通过delegate 收到通知(如果您的应用程序在下载完成时不存在,它将以后台模式启动,此时您可以执行任何操作您需要的清理)。
因此使用backgroundSessionConfigurationWithIdentifier 创建NSURLSessionConfiguration,然后使用该配置实例化NSURLSession。
有一些注意事项:
您不能使用完成处理程序模式。您必须使用基于委托的实现。
您必须在应用程序委托中实现handleEventsForBackgroundURLSession,捕获它传递给您的completionHandler,并再次实例化后台会话。同样,在您的NSURLSession 委托方法中,您必须实现URLSessionDidFinishEventsForBackgroundURLSession,它将调用保存的完成处理程序。
有关详细信息,请参阅 URL 会话编程指南 中的 Background Task Considerations,参阅 NSURLSession class reference 中的同名部分(但文本不同),或参阅 WWDC 2013 What's New in Foundation Networking ,Apple 首次向我们介绍了后台会话。
【讨论】: