分片上传
其原理就是在客户端将文件分割成多个小的分片,然后再将这些分片一片一片的上传至服务端,服务端拿到所有分片后再将这些分片合并起来还原成原来的文件。
那么服务端怎么知道我合并出来的文件是否和服务端上传的文件完全一样呢?
这里就需要用到文件的MD5值了,相当于是文件的“数字指纹”。只有当两个文件内容完全一样时,它们的MD5值才会一样。所以上传前,客户端需要先计算出文件的MD5值,并且把MD5值传递给服务端。服务端在合并文件后,也计算合并出的文件的MD5值,与客户端传递过来的MD5值进行比较。如果一致,则说明上传成功,若不一致,则说明上传过程中可能出现了丢包,上传失败。
断点续传
断点续传其实是利用分片上传的特性,上次上传中断时,已经有部分分片已上传到服务端,这部分就可以不用重复上传了
文件秒传
文件秒传其实是利用文件的MD5值作为文件的身份标识,服务端发现要上传的文件的MD5与附件库中的某个文件的MD5值完全一样,则要上传的文件已在附件库中,不用重复上传。
微信小程序分片上传方案
developers.weixin.qq.com/miniprogram…
真机 chooseVideo 返回的临时文件,每次计算 md5 值不同,无法使用秒传功能;