我使用NSURLConnection从iPhone上的网上下载大文件.我使用"didReceiveData"方法将数据附加到Documents文件夹中的文件.它工作正常.
如果下载中断(例如,因为用户按下了"主页"按钮),我希望能够在下次用户启动我的应用程序时继续下载,而不是从头开始!
有人可以帮帮我吗?
ASIHTTPRequest易于使用支持恢复下载:
http://allseeing-i.com/ASIHTTPRequest/How-to-use#resume
或者,通过查看现有数据的大小,找出已经下载了多少数据,并在NSMutableURLRequest上设置'Range'标题:
[request addValue:@"bytes=x-" forHTTPHeaderField:@"Range"];
Run Code Online (Sandbox Code Playgroud)
..其中x是您已经拥有的数据的字节大小.这将从字节x开始下载数据.然后,您可以在收到文件时将其附加到文件中.
请注意,您从中下载的Web服务器必须支持您尝试下载的资源的部分下载 - 如果是,则发送Accept-Ranges标头.您通常无法恢复动态生成内容的下载(例如,服务器上的脚本生成的页面).