美文网首页iOS开发iOS点点滴滴
iOS大文件下载/断点续传/自定义下载位置/完整库

iOS大文件下载/断点续传/自定义下载位置/完整库

作者: 李大宽 | 来源:发表于2017-07-17 15:47 被阅读167次

一年前写过两篇类似的文章, 当时分别用了NSURLConnection和NSURLSession写的, 感觉写的不太满意, 今天翻文章的时候给删掉了. 现在又重新写了一个下载工具类, 实测没有什么问题
优点: 断点续传 / 占用内存小 / 实时查看下载状态 / 下载完成失败有回调 / 下载位置自定义 / 支持多任务同时下载 / 代码量少, 结构清晰.
缺点: 依赖FMDB!!!!!!!!!(只要工程中有FMDB即可, 无需做其他操作)
如果没有FMDB库, 使用的是其它库, 你可以把我的工具中的"SmartFMDB"这个类重写一遍, 这里是数据库的二级封装类
看看效果:

QQ20170717-153052@2x.png

简书不能上传超过5M的gif文件........所以就看看下载的时候这个内存的走势吧....
usage:
把DKDownloadManager拖进工程,

第一步: 
引入
import "DKDownloadManager.h"
第二步:
初始化下载管理器, 并持有代理
DKDownloadManager *manager = [DKDownloadManager defaultManager];
manager.delegate = self;
第三部:
开始下载了
[manager startDownloadWithURL:@"www.baidu.com********]"
第四部:
下载过程中的状态回调
可以参考代码的回调方法
可以拿到的数据有: 当前下载进度(实时监测) + 某文件已下载大小(实时监测) + 某文件的总大小 + 文件下载失败回调 + 文件下载完成回调

想要改变下载文件的位置和数据库的位置, 可以找到Assistance文件夹下的DKDownloadPrefix文件, 把下面三句话修改成你想要的路径即可

/** 数据库文件路径 */
#define DOWNLOAD_DB_PATH [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"DKDownload.sqlite"]
/** 下载的文件路径 */
#define DOWNLOAD_FILE_PATH(name) [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"/DKDownload"] stringByAppendingPathComponent:name]

/** 表名 */
#define TABLE_NAME @"downloadList"

附上地址:https://github.com/DuncanLii/DKDownloadManager_2017_07_17

相关文章

  • iOS大文件下载/断点续传/自定义下载位置/完整库

    一年前写过两篇类似的文章, 当时分别用了NSURLConnection和NSURLSession写的, 感觉写的不...

  • IOS 断点续传原理浅析(第一篇)

    断点续传概述: 断点续传就是从文件上次中断的地方开始重新下载或上传数据,当下载大文件的时候,如果没有实现断点续传功...

  • iOS-16 断点续传 下载

    断点续传概述: 断点续传就是从文件上次中断的地方开始重新下载或上传数据,当下载大文件的时候,如果没有实现断点续传功...

  • iOS中断点续传(随心所欲下载缓存文件到本地)

    iOS中的断点续传,对于做视频类或下载的来说,比较重要,因为对于大文件,我们不可能迅速下载完成,这时候就需要我们本...

  • 更好的Android多线程下载框架2.0

    概述 本篇我们我们就来聊聊多线程下载框架,先聊聊我们框架的特点: 多线程 多任务 断点续传 支持大文件 可以自定义...

  • 基于Okhttp实现断点下载(续传)和分片下载

    断点下载/续传 断点下载是针对下载大文件需求的一种优化机制,可以从上次下载的断点处继续下载。断点续传原理也相同,只...

  • iOS断点续传

    基于iOS10、realm封装的下载器(支持存储读取、断点续传、后台下载、杀死APP重启后的断点续传等功能)。下载...

  • OkDownload源码分析

    OkDownload是一款多线程断点续传下载引擎,它的功能完整,性能高,可配置性高,可以注入自定义组件来修改下载策...

  • Okhttp多线程断点续传

    目录 1、断点续传相关定义2、多线程下载实现方案 1、断点续传相关定义 1.1、断点续传: 记录上次下载的位置,下...

  • 多线程断点下载

    实现断点续传的逻辑,就是把当前线程下载的位置保存起来,下次下载的时候,就按照上次下载的位置继续下载,就行。 多线程...

网友评论

    本文标题:iOS大文件下载/断点续传/自定义下载位置/完整库

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