前端实现大文件分片并行上传、断点续传、秒传(完整解析)
创作时间:
作者:
@小白创作中心
前端实现大文件分片并行上传、断点续传、秒传(完整解析)
引用
CSDN
1.
https://blog.csdn.net/m0_73560798/article/details/139445792
大文件上传是前端开发中常见的需求,但直接上传大文件可能会导致性能问题和用户体验不佳。为了解决这个问题,前端可以采用分片并行上传、断点续传和秒传等技术。本文将详细介绍这些技术的实现原理和具体步骤。
一、总体流程图
二、具体步骤
简单理解:前端先将文件切割多份,在进行上传,由后端进行切片合并操作。
具体逻辑:
- 前端选中上传文件(如果是批量上传就把选中的文件存入选中文件列表数组中,后续在遍历上传)
- 判断文件大小是否大于设定的阈值(如果小于的话就不用切片上传,直接走单文件上传逻辑)
- 如果大于的话就进入到大文件切片上传逻辑
- 4.按照固定大小对文件进行slice切片得到切片数组,计算切片数量,记录切片索引值,使用spark-md5计算文件的唯一哈希值
- 5.判断:根据文件的hash值和记录的切片信息,请求后端获取该文件是否已经存在当前文件或者上传的切片
- (1)如果已经存在,并且是已经上传成功的文件,则直接返回一个标识符告诉前端上传成功,实现秒传;
- (2)如果已经存在,但是有一部分上传失败,就返回给前端已经上传成功的切片信息,前端对切片数组进行筛选,排除已经上传过的切片数据,把剩余切片继续上传,实现断点续传》
- (3)如果不存在,就开始使用promise.all进行并行发送所有分片(在并发发送切片时控制并发量避免一次性上传多个切片),对接后端接口进行上传》
- 6.判断所有切片是否上传完成(根据上传成功的数组长度和失败的数组长度相加是否等于数组的长度来判断)
- (1)如果没有的话就提示上传失败,重新上传(走的还是断点续传的逻辑,记录的有index,会返回哪个切片没有上传完成,只需要重新上传这些切片就可以)
- (2)如果都上传完成的话就向后端发起请求,通知后端合并切片,最终完成整个上传流程。
三、切片上传
大文件上传-CSDN博客
- 前端将一个大文件,拆分成多个小文件(分片);
- 前端将拆分好的小文件依次发送给后端(每一个小文件对应一个请求);
- 后端每接收到一个小文件,就将小文件保存到服务器;
- 当大文件的所有分片都上传完成后,前端再发送一个“合并分片”的请求到后端;
- 后端对服务器中所有的小文件进行合并,还原完整的大文件;
四、文件秒传
文件秒传,其实指的是文件不用传。如果某一个文件,在之前已经上传成功过,再次上传时,就可以直接提示用户“上传成功”。
工作流程大致如下:
- 上传文件前,将文件名发送到后端,来判断当前文件是否有上传完成过;
- 后端接收到文件名,查询上传成功的文件中是否有该文件,并返回查询结果给前端;
- 前端接收到查询结果,如果是已上传过的文件,则直接提示用户“上传成功”;
五、断点续传
断点续传可以分为两种场景:
用户点击“暂停”按钮时,终止文件的上传;再点击“续传”按钮时,继续上传剩下部分;
用户在上传文件切片的过程中,由于外部原因(网络等)导致上传失败;后续重新上传时,可以接着上次失败的进度继续上传;
两种场景的处理方式其实和“文件秒传”是一样的,工作流程大致如下:
- 文件上传(续传)前,将文件名发送到后端,来判断当前文件是否有上传成功过的部分切片文件;
- 如果有上传过部分切片,后端将上传成功的切片文件名返回给前端;
- 前端从所有切片中,将已经上传成功的切片筛选出来,再将剩下未上传成功的切片重新发送给后端;
- 后端将所有切片合并,完成整个文件的上传
热门推荐
北京事业单位薪资揭秘:编制类型大比拼
安志杰吴建豪再合作,《赴汤蹈火》引爆期待
《怒火12小时》定档:安志杰暑期档黑马来袭!
PUBG MOBILE键位设置攻略:二指到五指操作详解
我国首个大型社区心衰筛查报告出炉:60岁以上老人中三成有早期心衰
出现5个症状,可能是心肺功能衰竭!危害不小,早期预防很重要
评估心衰诊疗质量,中国心力衰竭医疗质量控制指标体系发布
擦窗机器人使用中常见问题及解决方案
糯米蒸排骨:排骨的鲜香遇上糯米的软糯
收入确认大不同:中国企业会计准则与国际准则的异同
凯尔特宗教信仰:从神秘仪式到现代传承
用剪映制作新年头像,6步打造个性化新年形象
警惕!房颤可致卒中风险激增,专家教你科学防治
冠状动脉支架植入术是什么
冬凌草:一种具有抗菌和抗癌作用的天然草药,可有效缓解咽炎、扁桃体炎等症状
胃旁路手术后的饮食攻略:从清流质到固体食物的完整指南
术后快速恢复的秘密武器:高蛋白饮食
扁桃体术后饮食指南:快速康复的饮食秘诀
红枣桂圆当归汤:术后调理的养生秘方
2025跨年红色系头像,让你成为新年社交圈焦点!
龙庆峡冰雪嘉年华迎39载,生肖蛇与潮流IP点亮冬日盛宴
三种方法教你重置小米电视,轻松应对无法开机
信阳西河景区:4A级景区里的红色旅游胜地,玩转玻璃桥与峡谷漂流
Mayo Clinic:自动胰岛素输送系统成1型糖尿病治疗新标准
蛇年头像大比拼,谁最吸睛?
别再被忽悠了!一招教你辨别花旗参、人参、太子参
冬虫夏草的3种保存方法和对应的保质期
大同至丽江自驾游:车辆检查与应急准备全攻略
“AK”之争:军用步枪与4K摄像机的科技较量
AK47:从战场到银幕,一款改变世界的苏联步枪