大文件分片上传、断点续传

话前

        一开始在做文件上传的时候,没考虑过文件上传失败的问题,因为上传的多数都是几十兆几百兆的文件。但是也有会上传比较大的文件,此时传统的上传直接没了反应,也不知道上传了多少就很头疼。后来网上搜索的关于大文件上传的思路,网上的思路还是蛮多的,都挺成熟的,然后就想把大文件分片下载这个技术引到项目中。最后也是成功引入分片上传和断点续传,还有大文件分片下载。本篇就来聊一聊大文件分片上传。

一、为什么要使用分片上传

        要用分片上传,首先要知道为什么要使用分片上传,或者说那些场景下要使用分片上传。

        1.文件过大:一个文件过大,几个G或者几十G的大文件就非常适合分片上传

        2.网络不稳定:网络时好时坏或者比较慢的情况

        3.断点续传:传了一部分后暂停想继续传的时候,分片上传也是个不错的选择(断点续传需要考虑其他因素,这里不做具体详情的讲说)

二、分片上传原理

        了解了为什么要使用分片上传后,就要引入分片上传了。

        分片上传的大致流程:前端对文件进行切片,然后分片发送到服务端。服务端接收到分片文件后保存相应的文件,并对每片做好排序(我是采用文件名前序号的方式),最后合并文件,这是总体流程。具体的流程如下:

        1.客户端对将要上传的文件定义唯一标识,并对文件进行分片(每10兆为一片)

        2.客户端调用服务端接口,进行上传文件片(客户端每次都要携带文件唯一标识,客户端可以每五个一组进行并行上传)

        3.服务端用文件唯一标识建临时文件夹(用来存储文件片,最后方便在这个文件下删除文件片)

        4.客户端每次上传完后根据服务端返回的结果判断该组的文件片是否都上传从成功,若有没成功的文件片,可以单独对该文件片进行重新上传

        5.服务端根据上传文件夹中文件片的总和跟客户端分片的总和是否相等判断文件片是否都上传完成

        6.分片文件上传完成后,服务端合并文件片,并删除临时文件夹中分片文件

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端大文件指的是上文件大小较大,超过了常规的文件限制(例如2MB)。这时需要使用特殊的上方式,常见的有两种: 1. 分片:将大文件分成多个小文件,分别上到服务器,并在服务器端将这些小文件合并成一个完整的文件。 2. 断点:将大文件分成多个小文件,分别上到服务器,上过程中若出现网络中断或其他原因导致上失败,可以从失败的位置继,避免重新上整个文件。 实现前端大文件断点需要使用一些第三方库或框架,例如: 1. Plupload:一个基于Flash和HTML5的文件库,支持分片断点。 2. Resumable.js:一个基于HTML5的文件库,支持断点。 3. jQuery-File-Upload:一个基于jQuery的文件插件,支持分片断点。 在使用这些库或框架实现大文件断点时,需要注意以下几点: 1. 服务器端需要支持分片断点,否则无法实现这些功能。 2. 分片断点需要对文件进行切片,这可能会影响上速度和文件完整性,需要做好相应的处理。 3. 断点需要记录上进度,以便在上失败时能够从失败的位置继。 总之,前端大文件断点是一个比较复杂的问题,需要使用一些专门的库或框架来实现,同时需要注意一些细节问题,才能保证上效率和上成功率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值