iOS网络中下载文件之断点续传

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开始.
    
}








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值