FTP(文件传输协议的简称)(File Transfer Protocol、 FTP)客户端软件断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传下载未完成的部分,而没有必要从头开始上传下载。用户可以节省时间,提高速度-------转百度百科
以下载图片为例
代码搞起:
#import "ViewController.h"
@interface ViewController ()<NSURLConnectionDataDelegate>
//在sb 上搞一个imageView
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
NSLog(@"touchesBegan");
//断点续传
/**
什么时候用断点续传?
想要从指定位置下载文件,指定下载的文件长度.
只要设置了请求头的 Range 属性,就可以获取到指定位置的文件内容.
Range 格式:
bytes=x-y :从x位置开始,下载y个字节.
bytes=x- :从x位置开始,下载完毕. 断点续传的.
bytes=-x :从开始下载x个字节.
一旦 Range 属性设置成功,服务器返回的响应行中的状态码就会变成 206.
下载/显示图片,下载图片 1/3 的数据.
*/
NSString *urlString = @"http://d.hiphotos.baidu.com/image/pic/item/2e2eb9389b504fc2065e2bd2e1dde71191ef6de0.jpg";
NSURL *url = [NSURL URLWithString:urlString];
// 1.创建请求.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSString *range = @"bytes=0-6000";
//通过请求头设置数据请求范围
[request setValue:range forHTTPHeaderField:@"Range"];
// 2.发送同步请求
NSURLResponse *response = nil;
// 同步下载图片数据.
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:NULL];
NSLog(@"response:%@",response);
// 展示图片
UIImage *image = [UIImage imageWithData:data];
NSLog(@"image:%@",image);
self.imageView.image = image;
// 图片: 想要展示不完整的图片数据,必须从0开始.
}