做断点续传时,怎么知道文件下载到那哪里了,比如要下载1.jpg,怎么知道客户端下载了多少字节,再从该处开始。
需要你自己记录下载状态啊。
断点续传,你请求一个range,所以你作为客户端肯定知道下载到哪里了,你请求过的,并且成功接收数据的就是下载到哪里。
你暂停的时候,记录已经下载byte数,再次下载时候时候range测试告诉服务器从那里在下载
http://cuisuqiang.iteye.com/blog/2095644
下载时你会下载到文件,文件的头信息中会记载当前文件的内容长度,如下代码即可获取文件长度
/**
@return 文件大小
*/
long long fileSize =0;
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:path]) {
NSError *error = nil;
NSDictionary *fileDict = [fileManager attributesOfItemAtPath:path error:&error];
if (!error && fileDict) {
fileSize = [fileDict fileSize];
}
}
return fileSize;
}
断点续传功能只需要你后台接受一个range的值就可以了,前台浏览器在进行下载时,range会一直记录下你下载了多少字节,你继续下载时,浏览器又会把这个值传给你的后台,之后你后台获取到了这个值,就可以从这个字节继续下载了,这个是约定熟成的,只要在后台配置写好代码,前台浏览器进行下载操作就可以有这个属性,就可以记录下已经下载多少字节,而且你必须使用这个属性才能达到。