HTML5文件的API,用切片的方法,可以将BLOB对象。前端获取相应的文件通过文件列表对象,将大文件按指定的分割方式,并将其传递到后端的一个接一个,然后后端,然后将文件保存在一个序列。

HTTP原理

有两种HTTP的常用方法,一是上传文件通过WebSocket接口,另一个是通过Ajax,每个人都有自己的优点的两种方法,虽然WebSocket听起来更高端的,但不同的协议的基础算法非常相似,并且服务器打开WS接口,这里相对方便Ajax说明断点上传的想法。

毕竟是HTTP做的内容,核心是把文件段,然后再上传到服务器上,但是这个看似简单但却有无数个坑。

首先是文件的识别。在一个文件被划分为几个部分之后,如何告诉服务器你切了多少块以及最终服务器应该如何合并上传的文件。

因此,在文件开始上传之前,我们需要有一个与服务器;握手的过程,告诉服务器文件信息,然后我们同意与服务器切片的大小,当我们与服务器达成共识时,我们可以启动后续的文件传输。

前台将每一份文件发送到后台。成功后,应该为后面的断点标识前端和后端。

当文件传输文件可以通过身份验证再次中断用户以确定文件是否上传到某个部分时,如果是,那么我们可以继续进行传输文件,以便恢复功能。

文件的前端部分

在HTML5文件API比想象中简单得多的时候裁剪文件。

只使用切片法。

无功分组= file.slice(开始、结束);


参数开始是开始片的位置,结束是片尾的位置单元。通过控制开始和结束,你可以成为文件的实现分区。

如:

(01000)file.slice;
(10002000)file.slice;
(20003000)file.slice;
/……


上传文件碎片

我们的最后一部分被切片方法分割成碎片,下一步要做的是将碎片发送到服务器。

这里我们使用ajax的POST请求来实现

新的XMLHttpRequest(XHR)var =;
文件上传地址,包括文件参数,例如文件块到后台处理
Xhr.open('post网址,真的);
xhr.onload =功能(e){
确定文件上传是否成功,如果成功上传一个文件,如果不能重试快速
}
xhr.upload.onprogress =功能(e){
如果文件块大小选择/大型单片混凝土可以通过该方法确定文件上传进度
/ / e.loaded文件上传数
对e.totalsize / /文件总大小
}
Xhr.send(包);


文件上传到后台后,后台程序,如php,会做出相应的处理。