@SanMao
2015-08-11T07:08:13.000000Z
字数 1803
阅读 1283
网络
- (IBAction)btnClick:(UIButton *)sender {// 1.切换按钮图片sender.selected = !sender.selected;// 2.判断是否是继续下载if (sender.selected) {// 继续下载NSLog(@"继续下载");NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/resources/videos/minion_02.mp4"];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];// 只要设置HTTP请求头的Range属性, 就可以实现从指定位置开始下载/*表示头500个字节:Range: bytes=0-499表示第二个500字节:Range: bytes=500-999表示最后500个字节:Range: bytes=-500表示500字节以后的范围:Range: bytes=500-*/NSString *range = [NSString stringWithFormat:@"bytes %zd-", self.currentLength];[request setValue:range forHTTPHeaderField:@"Range"];self.con = [NSURLConnection connectionWithRequest:request delegate:self];}else{// 暂停NSLog(@"暂停");[self.con cancel];}}
接收到服务器返回的数据
[self.handle seekToEndOfFile];
[self.handle writeData:data];
// 计算当前接收到得数据的总数self.currentLength += data.length;// 计算下载比例self.progressView.progress = 1.0 * self.currentLength/self.totalLength;
接收完毕
[self.handle closeFile];self.handle = nil;
// 创建一个输出流/*第一个参数: 告诉系统数据流需要输出到哪第二个参数: 告诉系统如何输出, 如果传递YES, 代表着每次数据都是输出到上一次的屁股后面*/self.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:YES];// 只要调用open方法, 就可以往指定的文件中输出数据// 如果文件不存在就会自动创建一个[self.outputStream open];
/*第一个参数: 传入需要写入的数据第二个参数: 告诉系统写入的数据有多长*/[self.outputStream write:data.bytes maxLength:data.length];
[self.outputStream close];self.outputStream = nil;