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

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

0

5个回答

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

0

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

0

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

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

0

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

  • 获取文件大小
  • @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;
    }

0

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

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【HTTP】检测服务器是否支持断点续传
CURL 实现检测:  能够找到 Content-Range,则表明服务器支持断点续传。有些服务器还会返回 Accept-Ranges,输出结果 Accept-Ranges: bytes ,说明服务器支持按字节下载。
服务器是否支持断点续传
通常情况下,Web服务器(如Apache)会默认开启对断点续传的支持。因此,如果直接通过Web服务器来提供文件的下载,可以不必做特别的配置,即可享受到断点续传的好处。断点续传是在发起HTTP请求的时候加入RANGE头来告诉服务器客户端已经下载了多少字节。等所有这些请求都返回之后,再把得到的内容一块一块的拼接起来得到完整的资源。   你可以通过以下的命令来测试一下。 Linux
说说如何使用 Android 服务下载文件(支持断点续传)
1 添加网络库 在 build.gradle 中添加 okhttp3 库: compile 'com.squareup.okhttp3:okhttp:3.10.0' 2 定义监听器 定义下载监听器,监听下载过程中的各种情况: public interface DownloadListener { /** * 当前下载进度 * * @p...
判断URL是否支持断点续传?
#python #xiaodeng #判断URL是否支持断点续传? import urllib2 req = urllib2.Request('http://ftp.ubuntu.com/') req.add_header('Range', 'bytes=0-20') res = urllib2.urlopen(req) print res...
解决FTP客户端文件断点续传过程中服务器无法知晓文件总大小的问题
问题:
HTTP 断点续传(分块传输)
简述 断点续传:指的是在上传/下载时,将任务(一个文件或压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传/下载,如果碰到网络故障,可以从已经上传/下载的部分开始继续上传/下载未完成的部分,而没有必要从头开始上传/下载。可以节省时间,提高速度。 简述 断点续传的用途 Range Content-Range 增强校验 Last-Modified Etag If-Range 工作原
如何判断是否支持断点续传功能?
首先如果遵循http协议,那么就应该支持断点续传功能,因为http1.1是支持断点续传的。 可以在将请求的参数设置好以后,随便设一个range,看是不是能返回正确的响应来判断是否支持断点续传
java之断点续传简单实现
断点续传主要是使用http协议中range的属性来取得资源的部分内容,由于一般服务是不对外直接提供url访问的,一般都是通过id,在servlet中输出byte[]来实现,所以要想实现断点续传一般要自己实现一个服务端。客户端保持文件的上传状态,可保存在本地或者数据库中。        本例模拟两次发送数据到服务器:        客户端:分多次取得部分文件内容,利用RandomAccessFi
flume断点续传
http://blog.csdn.net/m0_37739193/article/details/78779686这篇文章方法二所需的代码
HTTP 断点续传的原理
要实现断点续传下载文件, 首先要了解断点续传的原理。 断点续传其实就是在上一次下载断开的位置开始继续下载。 HTTP 协议中, 可以在请求报文头中加入 Range 段, 来表示客户机希望从何处继续下载。 在以前版本的 HTTP 协议是不支持断点的, HTTP/1.1 开始就支持了(这也是分快传输的实现)。 一般断点下载时才用到 Range 和 Content-Range 实体头。 这表示从 10...
Java编写的断点续传的一个Demo示例
最近在研究Java的网络编程。在学习了基础知识和原理之后,觉得可以搞一个断点续传的Demo示例。分享记录一下。 涉及到的Java知识点:URL,HttpURLConnection,RandomAccessFile类,HTTP协议的基础知识。
HttpURLConnection之断点续传(多线程下载)
一 前言         在上篇文章中《多线程下载》已经介绍过了多线程下载的原理,简单来说就是把一个大文件分为N等份,然后把每一份交给一个线程去下载,但是在下载的过程可能异常关机等情况,开机后,你再次打开应用去下载这个文件时,发现会重新下载这个文件,而不是接着上次结束的断点下载,这样会造成流量的浪费。为了解决这个问题,于是就出现了断点续传,断点续传是以多线程下载为基础来承担下载任务的,但除此之外
七牛断点续传-ios
最近需要使用七牛的图片存储。并且需要利用上它的断点续传。花了一天的时间看了一下。总结一下注意点: 七牛的sdk提供的已近非常不错了。核心的上传其实就是2个方法: //@"myqiniutest" [_upManager putFile:fileUrl.path key:nil token:uptoken complete: ^(QNResponseInfo *info, NSS
Flume断点续传深入研究
方法一:在excel source中运用复杂的tail命令 在百度中搜索到一篇文章:https://my.oschina.net/leejun2005/blog/288136 可以在tail传的时候记录行号,下次再传的时候,取上次记录的位置开始传输,类似: agent1.sources.avro-source1.command = /usr/local/bin/tail  -n +$(tai
HttpURLConnection方式下载文件之实现断点续传
public class DownloadTest { public static void main(String[] args) { try { File file = new File("test.apk"); HttpURLConnection connection = (HttpURLConnection) new
断点续传了解一下
Range 断点续传 有时候下载文件下载到一半的时候网络断开了, 需要继续下载的时候, 如果不支持断点, 用户需要重新下载, 如果支持 range, 客户端会记录已经下载的内容,当网络恢复时, 则向服务端发送剩下 range 的读取请求, 服务端接收到请求后,会根据 range 找到剩下的内容 发送给 客户端。 客户端也可以通过 curl -v --header 'Range: by...
关于http断点续传那点事
一、断点续传     所谓断点续传,即在文件传输过程中,由于主动或者被动原因中断了传输过程。下一次重新建立连接,不需要从头开始继续下载。这个流程就可以称之为断点续传。     断点续传流程可以归纳为:将任务(一个文件或压缩包)人为的划分为一个或多个部分,每一个部分采用一个线程进行上传/下载,如果碰到网络故障,可以从已经上传/下载的部分开始继续上传/下载未完成的部分,而没有必要从头开始上传/下载...
断点续传学习记录
一、断点续传的原理        其实断点续传的原理简单,就是在http的请求上和一般的下载有所不同而已。        打个比方,浏览器请求服务器上的一个文时,所发出的请求如下:        假设服务器域名为www.jizhuomi.com/android,文件名为down.zip。 get /down.zip http/1.1 accept: image/gif,
flume中的断点续传
网上能找到很多同一版本的代码示例,如下: /usr/local/bin/tail -n +$(tail -n1 /home/storm/tmp/n) --max-unchanged-stats=600 -F /home/storm/tmp/id.txt | awk 'ARNGIND==1{i=$0;next}{i++; if($0~/文件已截断/)i=0; print i >> "/home
多线程下载文件和断点续传的简单实现
断点续传的要点: 每写入一次文件就将这次写入文件的位置保存起来(保存到文件中),下次读取文件的的位置开始下载public class MuchThreadDown { private static int threadCount = 3;// 开启3个线程 private static int blockSize = 0;// 每个线程下载的大小 pri
大文件上传第二弹(分片、秒传、断点续传)
继上次大文件分块上传原理见:http://blog.csdn.net/haohao123nana/article/details/51279098,博主终于有时间来真正的代码实现它。关键部分 前端用file.slice()分块 前端用FileReader获取每一分块的md5值 后端用MultipartFile接受分块文件 后端用FileOutputStream拼装分块文件 话不多说,直接上代码,我想
Qt编程10:QFtp断点续传(文件夹以及文件)
说:在“Qt编程9:QFtp实现普通文件的上传以及续传”
http断点续传与文件下载原理解析
一、断点续传的原理        其实断点续传的原理很简单,就是在http的请求上和一般的下载有所不同而已。        打个比方,浏览器请求服务器上的一个文时,所发出的请求如下:        假设服务器域名为www.jizhuomi.com/android,文件名为down.zip。 ?   get /down.zip http/1.1
Android 中实现多线程下载和断点续传的原理和代码
在上一章,用Java代码实现了 多线程下载和断点续传, 现在我们将它移植到 Android 上面.下面这个类能帮助我们实现多线程下载和断点续传功能. 介绍一下这个类的使用方法.快速下载 1. 该类的构造方法需要提供三个参数. 2. public MuchThreadDown(String path, String targetFilePath, int threadCount)
Java Spring Boot 服务器端断点续传功能支持 实现代码
原理我就不解释了,百度一大堆,然而他们代码有点繁琐,所以把自己的贴出来供大家参考,代码中有部分解释,有不明白的欢迎一起讨论~ import org.apache.catalina.connector.ClientAbortException; import org.springframework.boot.SpringApplication; import org.spr
listview多线程下载,解决button错乱问题
完美实现listview多线程断点续传下载,并解决button位置错乱问题,以及zip包的解压
android上传下载系列:断点续传分析
因为断点续传真的用不了http头部的几个字段,没办法,他只能自己来规定协议了。但是它们都还是需要RandomAccessFile。 其实通常性的原理都是分块分片。协议1虽说可以实现断点续传,不过他针对一个大文件只会有一个sourceid,它可以实现续传,但并不能提高上传的性能。 只有通过对一个大文件分片分块,然后并发上传,这样才能提升上传的性能。
QT 断点续传
应用需求:         网盘开发工作逐步进入各部分的整合阶段,当用户在客户端修改或新增加一个文件时,该文件要同步上传到服务器端对应的用户目录下,因此针对数据传输(即:上传、下载)这一块现在既定了三种传输方式,即:Ftp传输、HTTP传输以及基于UDT的传输。且这三种数据传输方式是可配的,可以通过不同的接口调用。相比这三种方式,基于UDT的大量文件传输是比较值得研究与创新的地方,它在底层是基于...
RandomAccessFile断点续传和多线程断点续传(大文件分段下载)总结
怎么断点续传? 两点: 1、网络数据(可以设置从文件的哪个位置下载) conn.setRequestProperty(“Range”, “bytes=”+startPos+”-“+endPos); 2、写入文件(可以设置从本地文件哪个位置写入) 使用RandomAccessFile.seek 单个文件怎么分段下载? 得到文件的总长度,把长度分为N个线程进行分开下载 1、Ra...
XMLHttpRequest实现HTTP协议下文件上传断点续传
目前从实用技术角度讲,文件上传的断点续传实现主要是借助客户端,例如,我们首次进入某网盘,会看到下图所示的“控件安装”提示:   有的网盘也有文件上传暂停的功能,这似乎是借助swfUpload实现的。 也就是,这些带续传功能的上传都不是使用HTTP协议实现的,也就是不是传统的网页技术(HTML+CSS+JS)实现的。 然,times are changing, 事物发
android 细数断点续传的坑
android项目中,不可避免会下载一些第三方应用,或者自身更新的包,或者下载视频文件,那么都会考虑用到断线续传的方式。 那么,断电续传的方式大概有3种: 1.比如下载视频的时候,调用js的方法,把文件下载下来,然后用randomAccessFile合并成一个文件。 2.如xUtils的断点续传代码,具体自己看。 3.利用sqlite,配合上randomAccessFile
3.数据采集 - 文件内容断点续采[flume1.6 + kafka0.10.2.0]
flume kafka
java支持断点续传文件上传和下载组件
文件上传   文件上传操作通常会附加一些限制,如:文件类型、上传文件总大小、每个文件的最大大小等。除此以外,作为一个通用组件还需要考虑更多的问题,如:支持自定义文件保存目录、支持相对路径和绝对路径、支持自定义保存的文件的文件名称、支持上传进度反馈和上传失败清理等。另外,本座也不想重新造车轮,本组件是基于 Commons File Upload 实现,省却了本座大量的工作 ^_^ 下面先从一个
分片上传及断点续传原理深入分析及示例Demo
分片上传、断点续传,这两个名词对于做过或者熟悉文件上传的朋友来说应该不会陌生。之所有有这边文章,还是因为自己在网上浏览了一些文章后发现没有找到一篇能瞬间明白原理和实现的,因此决定自己写一篇文章,方便有需要的朋友了解原理和实现。 分片上传,就是将所要上传的文件,按照一定的大小,将整个文件分隔成多个数据块(我们称之为Part)来进行分别上传,上传完之后再由服务端对所有上传的文件进行汇总整合成原始的文...
C#判断WEB服务器是否支持断点续传
C#判断WEB服务器是否支持断点续传 附linux下测试资源是否支持断点续传
python 实现断点续传
自己用python写的断点续传脚本
curl测试断点续传功能
环境说明 使用公司的文件下载服务器,测试其断点续传功能,文件服务器采用fastdfs搭建,文件小于50M直接使用流传输,准备下载url,查询其文件大小为3208578字节,断点下载,先下载0-90000字节,再下载90000-结束字节。 root@dev:~/test# curl -H "Range: bytes=0-90000" http://192.168.96.35:8080/FileSe
实现断点续传的两种思路
.在7月份分别做了多线程下载和断点续传 ,但当时只是测试,用了大文件分块传输的方法 实现流程首次传输其流程如下1.服务端向客户端传递文件名称和文件长度2.跟据文件长度计算文件块数3.客户端将传输的块数写入临时文件(做为断点值)4.若文件传输成功则删除临时文件首次传输失败后将按以下流程进行1.客户端从临时文件读取断点值并发送给服务端2.服务端与客户端将文件指针移至断点处3.从断点处传输文件这是当时的
HTTP:断点续传原理图文分析
起源 以前,用户不能使用现在这种高速的带宽访问互联网,当时,下载一个尺寸稍大的图片或文件就已经很吃力了。如果下载过程中遇到网络中断的情况,那就必须重头开始。 一、获取部分内容 在HTTP/1.1中,为了解决上述问题,需要一种可恢复的机制。所谓恢复是指能从之前下载中断处恢复下载。要实现该功能需要指定下载的实体范围。像这样,指定范围发送的请求叫做范围请求(RangeRequest)。 对一...
Windows自带局域网断点续传功能
其实SMB共享支持断电续传的,就这个命令: copy /z \\server\folder\file.ext D:\downloads\file.ext 1、使用copy 命令复制文件,首先会在目标位置创建一个和源文件大小相同的文件,然后进行填充; 2、在复制过程中断开网络或者关闭远程主机,copy /z会停止复制,但目标位置的文件仍然存在;不使用/z开关的copy会停止
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链问题 ios视频开发问题