2 asderfzxcd asderfzxcd 于 2017.01.03 10:52 提问

断点续传问题,如何判断位置

做断点续传时,怎么知道文件下载到那哪里了,比如要下载1.jpg,怎么知道客户端下载了多少字节,再从该处开始。

5个回答

caozhy
caozhy   Ds   Rxr 2017.01.03 10:58

断点续传,你请求一个range,所以你作为客户端肯定知道下载到哪里了,你请求过的,并且成功接收数据的就是下载到哪里。

JE_GE
JE_GE   2017.01.03 12:54

你暂停的时候,记录已经下载byte数,再次下载时候时候range测试告诉服务器从那里在下载

http://cuisuqiang.iteye.com/blog/2095644

zjn640322
zjn640322   2017.01.03 14:12

下载时你会下载到文件,文件的头信息中会记载当前文件的内容长度,如下代码即可获取文件长度
/**

  • 获取文件大小
  • @param path 文件路径
  • @return 文件大小
    */

    • (long long)fileSizeForPath:(NSString *)path {

    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;
    }

xionglangs
xionglangs   Rxr 2017.01.03 17:37

断点续传功能只需要你后台接受一个range的值就可以了,前台浏览器在进行下载时,range会一直记录下你下载了多少字节,你继续下载时,浏览器又会把这个值传给你的后台,之后你后台获取到了这个值,就可以从这个字节继续下载了,这个是约定熟成的,只要在后台配置写好代码,前台浏览器进行下载操作就可以有这个属性,就可以记录下已经下载多少字节,而且你必须使用这个属性才能达到。

Tiger_Zhao
Tiger_Zhao   Rxr 2017.01.03 10:54

需要你自己记录下载状态啊。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!