前言
在做文件上传,尤其是大文件上传过程中,比如大视频等,经常会碰到这么一种情况,就是用户希望这一次没有上传完,或者中途因为网络原因上传失败了,下一次继续上传的时候可以接着上次没有传完的地方继续上传,这样既可以保证上传的进度,又不用重新上传,避免耗时的等待,这个需求该怎么实现呢?
思路分析
大体来说,可以分为下面几步进行思考
- 对于前端页面来说,考虑到一次上传大文件后端可能承受不住压力,就需要将文件进行分段或分片,比如用户一次上传100MB的文件,前端可以将文件拆分为10份上传,每份10MB,则分片数=10MB,每一片大小为10MB
- 考虑中途会中断的场景,前端页面如果继续发起请求上传,为了能继续上一次的地方进行上传,需要知道是否同一个文件?以及本次继续上传时的分片位置?
- 基于第二条的考虑,需要在上传之前,手动调用一下后台接口,确认下是否执行本次上传
- 对后台来说,需要指定上传的文件路径
- 对于前端传过来的文件,可以根