IE浏览器默认下载方式不支持断点续传。
常见的支持断点续传的上传、下载软件:QQ旋风、迅雷、快车(迷你快车)、web迅雷、影音传送带、快车、Bitet、电驴eMule、哇嘎Vagaa、RF[RaySourse/RayFile]、酷6、土豆、优酷、百度视频、新浪视频、腾讯视频、百度云等都支持断点续传,在陶诺网络科技,网站里面也有相关的工具下载,可以百度一下进去下载。
在 *nix(Linux/Unix)系统下,常用支持断点续传的FTP客户端软件是lftp。
特点
断点续传支持从文件上次中断的地方开始传送数据,而并非是从文件开头传送。
断点续传下载软件具有以下特点:
1、断点续传功能,既可节约时间又可以节约金钱。
2、定时下载功能,可以为将要下载的软件制定一任务列表,让下载软件在规定的时间自动拨号上网并下载软件,下载完毕后再自动挂起Modem,断开与internet的连接,甚至自动关闭计算机。
3、多文件同时下载。
4、支持拖放式 *** 作,可将下载文件的URL超链接用鼠标拖放到下载软件的窗口上,即可激活下载软件,同时开始文件的下载。
5、自动捕捉剪贴板上的URL并激活下载软件,可以捕捉到剪贴板中的URL,甚至浏览器中单击下载文件超链接,即可激活程序实现文件的下载。
6、致命错误发生时的关闭机制。
7、预防病毒侵害的安全机制,文件下载完毕,即可自动将其发送到指定的病毒的检测软件进行病毒扫描。
断点续传下载软件包括Thunder、NetAnts、FlashGet、Net Vampire、Download Manager、GetRight、Go!Zilla、WinDownload等。
问题二:什么是断点续传,有什么优点 断点续传支持从文件上次中断的地方开始传送数据,而并非是从文件开头传送。
问题三:什么是断点续传,有什么优点 也就是可以暂停下载 再重新开始下载
好处是 万一你下载的时候突然断网了 如果有断电续传的话 可以在连上网后 继续下载~
普通下载可不行~~
问题四:断点续传是什么意思 就是信号中断后(掉线或关机等),下次能够从上次的地方接着传送(一般指下载或上传),不支持断点续传就意味着下次下载或上传必须从零开始.$
一般常用的网际快车就支持断点续传啊,断点大小是可以设置的,比如设为200KB,意思就是每下载200KB的文件,就自动保存一次。举个例子你就明白了:=l
比如你将下载的某软件大小为250KB。断点大小设为200KB的话,如果刚下载至240KB时突然断电,还差10KB没有下载,这时下次下载时,该软件就有200KB的文件已保存在你的电脑里,只需接着下载下差的50KB就可以了。
问题五:什么叫断点续传功能?我下了一半的文件中途断网了,之后能继续之前的下载吗 你说对了
问题六:什么是断点续传? 就是信号中断后(掉线或关机等),下次能够从上次的地方接着传送(一般指下载或上传),不支持断点续传就意味着下次下载或上传必须从零开始.$
一般常用的网际快车就支持断点续传啊,断点大小是可以设置的,比如设为200KB,意思就是每下载200KB的文件,就自动保存一次。举个例子你就明白了:=l
迅雷上次没传完,下次打开,就可以直接传了
问题七:如何实现断点续传 其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。 打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为w sjtu.edu,文件名为down.zip。 GET /down.zip HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- excel, application/msword, application/vnd.ms-powerpoint, */* Accept-Language: zh- Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (patibleMSIE 5.01Windows NT 5.0) Connection: Keep-Alive 服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下: 200 Content-Length=106786028 Accept-Ranges=bytes Date=Mon, 30 Apr 2001 12:56:11 GMT ETag=W/02ca57e173c11:95b Content-Type=application/octet-stream Server=Microsoft-IIS/5.0 Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT 所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给 Web服务器的时候要多加一条信息--从哪里开始。 下面是用自己编的一个浏览器来传递请求信息给Web服务器,要求从2000070字节开始。 GET /down.zip HTTP/1.0 User-Agent: NetFox RANGE: bytes=2000070- Accept: text/html, image/gif, image/jpeg, *q=.2, */*q=.2 仔细看一下就会发现多了一行RANGE: bytes=2000070- 这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。 服务器收到这个请求以后,返回的信息如下: 206 Content-Length=106786028 Content-Range=bytes 2000070-106786027/106786028 Date=Mon, 30 Apr 2001 12:55:20 GMT ETag=W/02ca57e173c11:95b Content-Type=application/octet-stream Server=Microsoft-IIS/5.0 Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT 和前面服务器返回的信息比......>>
问题八:什么是不支持断点续传 通过等待或者选择试用的方式开始下载
一般都是右键另存为的方式下载
但是如果用影音快车的话,就可以断点多线下载了
其实迅雷也可以的
1、文件过大会导致带宽资源紧张,请求速度下降 ;
2、如果上传过程中服务中断、网络中断 、页面崩溃,可能会导致文件重新开始上传。
前端选择文件后上传,后端在处理文件过程中,首先会将文件加载到 运行内存中 ,之后再调用相应的API进行 写入硬盘 内存的 *** 作,完成整个文件的上传。
但这样直接上传文件,可能会因为某个环节出了问题导致整个流程的雪崩,所以大文件直接上传是不可取的。
解决问题最好办法是 分片断点续传 ,该方式主要是针对 大文件(比如100M以上的文件) 。
顾名思义就是 断点 和 续传
在文件上传过程中,将一个要上传的文件 分成N块 ,然后使用 多线程并发多块上传 ,因为某种原因导致上传被中断或暂停,此时中断或暂停的位置就成为 断点 。
前端每上传一片,将会被加载到 运行内存中 ,加载完毕后再写入硬盘,此时运行内存的临时变量会被释放,然后此临时变量会被下一片占用,再进行写入,释放...
意思是指从中断的位置继续上传剩下的部分文件,而不是从头开始上传。
上传完毕后,在服务端进行合并(合并的 *** 作是在后端进行的,前端只是调用接口,合并的方式是由后端决定的,到底是上传一片就合并一片,或者是上传所有的之后整体进行合并)。
方式:
html5z之前的方式是 flash 和 activeX
html5提供了文件二进制流进行分割的slice方法。
文件的分片,一般在2-5M之间。这一步得到了每一片文件的内容、每一块的序号、每一块的大小、总块数等数据。
这里提供了两个方法;一种是用SparkMD5.hashBinary( ) 直接将整个文件的二进制码传入直接返回文件的md5、这种方法对于小文件会比较有优势——简单并且速度快。
另一种方法是利用js中File对象的slice( )方法(File.prototype.slice( ))将文件分片后逐个传入spark.appendBinary( )方法来计算、最后通过spark.end( )方法输出结果,很明显,这种方法对于大型文件会非常有利——不容易出错,并且能够提供计算的进度信息
第一种方式:
第二种方式
Linux下实现断点续传的原理介绍
断点续传的原理
其实断点续传的原理很简单,就是在 Http 的请求上和一般的下载有所不同而已。
打个比方,浏览器请求服务器上的一个文时,所发出的请求如下:
假设服务器域名为 ,文件名为 down.zip。
GET /down.zip HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-
excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatibleMSIE 5.01Windows NT 5.0)
Connection: Keep-Alive
服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下:
200
Content-Length=106786028
Accept-Ranges=bytes
Date=Mon, 30 Apr 2001 12:56:11 GMT
ETag=W/“02ca57e173c11:95b”
Content-Type=application/octet-stream
Server=Microsoft-IIS/5.0
Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT
所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给 Web 服务器的时候要多加一条信息 -- 从哪里开始。
下面是用自己编的一个“浏览器”来传递请求信息给 Web 服务器,要求从 2000070 字节开始。
GET /down.zip HTTP/1.0
User-Agent: NetFox
RANGE: bytes=2000070-
Accept: text/html, image/gif, image/jpeg, *q=.2, */*q=.2
仔细看一下就会发现多了一行 RANGE: bytes=2000070-
这一行的意思就是告诉服务器 down.zip 这个文件从 2000070 字节开始传,前面的字节不用传了。
服务器收到这个请求以后,返回的信息如下:
206
Content-Length=106786028
Content-Range=bytes 2000070-106786027/106786028
Date=Mon, 30 Apr 2001 12:55:20 GMT
ETag=W/“02ca57e173c11:95b”
Content-Type=application/octet-stream
Server=Microsoft-IIS/5.0
Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT
和前面服务器返回的信息比较一下,就会发现增加了一行:
Content-Range=bytes 2000070-106786027/106786028
返回的`代码也改为 206 了,而不再是 200 了。
知道了以上原理,就可以进行断点续传的编程了。
Java 实现断点续传的关键几点
(1) 用什么方法实现提交 RANGE: bytes=2000070-。
当然用最原始的 Socket 是肯定能完成的,不过那样太费事了,其实 Java 的 net 包中提供了这种功能。代码如下:
URL url = new URL(“/down.zip”)
HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection()
// 设置 User-Agent
httpConnection.setRequestProperty(“User-Agent”,“NetFox”)
// 设置断点续传的开始位置
http Connection.setRequestProperty(“RANGE”,“bytes=2000070”)
// 获得输入流
InputStream input = httpConnection.getInputStream()
从输入流中取出的字节流就是 down.zip 文件从 2000070 开始的字节流。 大家看,其实断点续传用 Java 实现起来还是很简单的吧。 接下来要做的事就是怎么保存获得的流到文件中去了。
保存文件采用的方法。
我采用的是 IO 包中的 RandAccessFile 类。
*** 作相当简单,假设从 2000070 处开始保存文件,代码如下:
RandomAccess oSavedFile = new RandomAccessFile(“down.zip”,“rw”)
long nPos = 2000070
// 定位文件指针到 nPos 位置
oSavedFile.seek(nPos)
byte[] b = new byte[1024]
int nRead
// 从输入流中读入字节流,然后写到文件中
while((nRead=input.read(b,0,1024)) 》 0)
{
oSavedFile.write(b,0,nRead)
}
以上就是断点续传的原理,知道这些原理,相信大家都能够进行编程了吧,这个技术在现在的电脑技术上也算不得什么,打家应该都注意到我们下载时都是断点续传吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)