美文网首页
iOS 轻量级文件下载和断点续传

iOS 轻量级文件下载和断点续传

作者: 白云之巅1992 | 来源:发表于2016-07-22 10:51 被阅读135次

    因为最近项目在做电子书功能,涉及到了文件的下载和断点续传,找了以前学习的代码做了一些修改,只需两个类即可实现文件下载、断点续传、下载进度显示,使用也很简单,导入头文件后下载和暂停下载示例如下,更详细结尾会上传demo:

    点击下载核心代码:

    [[HMDownloadManager sharedManager] downloadFileWithUrlString:self.urlString downloadBlock:^(float progress, long long currentLength) {
    
    // self.urlString 为文件在服务器的地址
    
    // progress 就是当前的进度值,可以设置进度显示.
    
    }];
    

    暂停下载:

    - (IBAction)pause:(id)sender
    
    {
    
    NSDictionary *operations = [HMDownloadManager sharedManager].operations;
    
    HMDownloadOperation *op = operations[self.urlString];
    
    // 仅仅是将网络断开了,操作依然存在!
    
    [op.conn cancel];
    
    op.conn = nil;
    
    // 移除操作缓存中的操作. 目的:可以再次添加下载操作的时候,可以重新加入一个相同的下载操作!
    
    [[HMDownloadManager sharedManager].operations removeAllObjects];
    
    }
    

    其他:下载后默认保存到document下,保存的文件名为下载的文件名。

    判断逻辑:
    点击下载先判断文件是否存在。文件不存在则重新下载。文件存在再根据本地文件和服务器文件大小做对比,本地文件小则做断点续传,本地文件大文件错误重新下载,本地文件等于服务器文件大小则文件下载成功不需要下载。

    demo稍后会上传到GitHub,欢迎Star。

    附录:服务器是否支持断点续传,如果服务器不支持就把断点续传那块换成重新下载即可。

    另外我本人维护的几个《iOS从入门到精通系列》专题,不定期更新,都是工作中实用并筛选过的,欢迎各位道友关注和共同维护。

    iOS从入门到精通 ∷ 工作篇
    iOS从入门到精通 ∷ 界面篇
    iOS从入门到精通 ∷ 网络篇
    iOS从入门到精通 ∷ 面试篇

    相关文章

      网友评论

          本文标题:iOS 轻量级文件下载和断点续传

          本文链接:https://www.haomeiwen.com/subject/lokijttx.html