一:本示例代码包括:

  • 文件下载,写入指定目录
  • 下载进度,回调Progress;
  • 断点续传,下载暂停,继续操作;

二:本项目 适用于 AFNetworking 1.x 版本

 #pragma mark 断点续传下载;

     //断点下载续传--需要服务器端的支持,本次测试为下载百度音乐,此接口,会在第二次暂停,继续下载时,出404错误;

     //进度
UIProgressView *downProgressView = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleDefault];
downProgressView.center = CGPointMake(self.view.center.x, );
downProgressView.progress = ;
downProgressView.progressTintColor = [UIColor blueColor];
downProgressView.trackTintColor = [UIColor grayColor];
[self.view addSubview:downProgressView]; //开始
UIButton *start = [UIButton buttonWithType:UIButtonTypeRoundedRect];
start.frame = CGRectMake(, , , );
[start setTitle:@"开始" forState:UIControlStateNormal];
[start addTarget:self action:@selector(startDownloadOp) forControlEvents:UIControlEventTouchUpInside]; //暂停
UIButton *pause = [UIButton buttonWithType:UIButtonTypeRoundedRect];
pause.frame = CGRectMake(, , , );
[pause setTitle:@"暂停" forState:UIControlStateNormal];
[pause addTarget:self action:@selector(pausetDownloadOp) forControlEvents:UIControlEventTouchUpInside]; //继续
UIButton *resume = [UIButton buttonWithType:UIButtonTypeRoundedRect];
resume.frame = CGRectMake(, , , );
[resume setTitle:@"继续" forState:UIControlStateNormal];
[resume addTarget:self action:@selector(resumeDownloadOp) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:start];
[self.view addSubview:pause];
[self.view addSubview:resume]; //文件名
NSString *fileName = [NSString stringWithFormat:@"%@愿得一人听.mp3",NSTemporaryDirectory()];
NSLog(@"%@",fileName); //下载
NSURLRequest *downloadRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:MusicOne]];
self.downloadMusicOP = [[AFHTTPRequestOperation alloc]initWithRequest:downloadRequest];
_downloadMusicOP.outputStream = [NSOutputStream outputStreamToFileAtPath:fileName append:NO]; [_downloadMusicOP setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
CGFloat progress = ((float)totalBytesRead) / totalBytesExpectedToRead;
[downProgressView setProgress:progress animated:YES];
start.enabled = NO;
[start setTitle:@"下载中" forState:UIControlStateNormal];
}]; [_downloadMusicOP setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
start.enabled = NO;
[start setTitle:@"完成" forState:UIControlStateNormal];
NSLog(@"download finish");
NSLog(@"%@",[[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:nil]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error %@",error);
}]; } #pragma mark AFNetworking 下载之断点续传; - (void)startDownloadOp
{
[_downloadMusicOP start];
} - (void)pausetDownloadOp
{
[_downloadMusicOP pause];
} - (void)resumeDownloadOp
{
[_downloadMusicOP resume];
}

项目代码:http://git.oschina.net/cocoajin/AFNetworkingTest

AFNetworking 下载文件断点续传操作的更多相关文章

  1. ftp上传文件、删除文件、下载文件的操作

    FavFTPUtil.Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...

  2. java实现从服务端下载文件

    这边用一个简单的servlet实现java从服务端下载文件的操作 写一个servlet: <servlet> <servlet-name>DownloadServlet< ...

  3. js -- fileData 实现文件断点续传

    前端实现文件的断点续传 一.一些知识准备 断点续传,既然有断,那就应该有文件分割的过程,一段一段的传. 以前文件无法分割,但随着HTML5新特性的引入,类似普通字符串.数组的分割,我们可以可以使用sl ...

  4. ios开发网络学习五:MiMEType ,多线程下载文件思路,文件的压缩和解压缩

    一:MiMEType:一般可以再百度上搜索到相应文件的MiMEType,或是利用c语言的api去获取文件的MiMEType : //对该文件发送一个异步请求,拿到文件的MIMEType - (void ...

  5. 【FTP】FTP文件上传下载-支持断点续传

    Jar包:apache的commons-net包: 支持断点续传 支持进度监控(有时出不来,搞不清原因) 相关知识点 编码格式: UTF-8等; 文件类型: 包括[BINARY_FILE_TYPE(常 ...

  6. 反射机制及开源框架xUitls的使用,使用HttpUtils通过断点续传下载文件

    反射: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性 Java反射机制主要提供下面几种用途: 1•在运行时判断 ...

  7. java 多线程下载文件并实时计算下载百分比(断点续传)

    多线程下载文件 多线程同时下载文件即:在同一时间内通过多个线程对同一个请求地址发起多个请求,将需要下载的数据分割成多个部分,同时下载,每个线程只负责下载其中的一部分,最后将每一个线程下载的部分组装起来 ...

  8. (转)FTP操作类,从FTP下载文件

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...

  9. iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄

    前言:本篇讲解,在前篇iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载的基础上,使用输出流代替文件句柄实现大文件断点续传.    在实际开发中,输入输出流用的比较少,但 ...

随机推荐

  1. phpcms 大杂烩

    问题1:栏目页伪静态(不生成HTML)时,URL规则中{$categorydir}{$catdir}仍显示为{$categorydir}{$catdir}解决方法. 第一步:打开phpcms\modu ...

  2. org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 32; 元素类型为 "key" 的内容必须匹配 "(column)*"

    报错:部分错误信息,主要查看CauseBy Caused by: org.hibernate.InvalidMappingException: Unable to read XML at org.hi ...

  3. Flask实战第55天:cms轮播图上传到七牛功能完成

    登录七牛云,进入“对象存储”, 新建存储空间(Bucket), 我创建的空间命名为flask-bbs 创建完Bucket,七牛会给我们提供一个测试域名,生产环境中,我们需要绑定自己的域名 在个人面板中 ...

  4. 【java】线程安全的整型类AtomicInteger

    一.遇见AtomicInteger 在看项目代码的时候看到这个类,发现其功能很简单,就是一个整型变量的类型,出于好奇看了其类定义. 该类位于java.util.concurrent.atomic下,在 ...

  5. 打开eclipse 时出现Failed to load the JNIshared libraryd的解决方式

    由于电脑重装系统,所以电脑的jdk,与eclipse需要重新配置,今天配置完成jdk之后,打开eclipse出现了Failed to load the JNIshared libraryd的错误,如下 ...

  6. 【hihoCoder 第133周】【hihoCoder 1467】2-SAT·hihoCoder音乐节

    http://hihocoder.com/problemset/problem/1467 2-sat模板...详细的题解请看题目里的提示. tarjan模板打错again致命伤qwq #include ...

  7. cogs 2039. 树的统计

    2039. 树的统计 ★★   输入文件:counttree.in   输出文件:counttree.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 关于树的统计问题有 ...

  8. Codeforces 500 E. New Year Domino

    \(>Codeforces \space 500 E. New Year Domino<\) 题目大意 : 数轴上有序排列着 \(n\) 块多米诺骨牌, 第 \(i\) 块骨牌坐标为 \( ...

  9. Codeforces #447 Div.2 Tutorial

    Problem A:QAQ 给一个字符串,求出可非连续的QAQ序列有多少个. Analysis:比较水的一道题,记录每一个Q的位置,预处理A的个数即可 然而还是fst了,原因是未考虑一个Q都没有的极端 ...

  10. 【树形dp】TELE

    [POJ1155]TELE Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5376   Accepted: 2973 Des ...