(19)中华 人民共和国 国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202111363310.6
(22)申请日 2021.11.17
(71)申请人 兰州乐智教育科技有限责任公司
地址 730030 甘肃省兰州市城关区张苏 滩
553号电信第二枢纽
(72)发明人 李宁 王涛
(74)专利代理 机构 北京华夏泰和知识产权代理
有限公司 1 1662
代理人 杜欣
(51)Int.Cl.
H04L 67/06(2022.01)
H04L 9/32(2006.01)
H04L 9/40(2022.01)
(54)发明名称
一种基于断点重传的文 件上传方法和系统
(57)摘要
本发明提供了一种基于断点重传的文件上
传方法和系统, 用以解决现有技术中大文件上传
时出现中断故障后的重新上传问题。 所述文件上
传方法在客户端读取待上传 文件后, 分别通过不
同的API接口与服务器进行文件信息及上传状态
的交互和文件 上传; 其中文件上传前进行文件分
块, 基于分块进行逐步上传, 每个文件块的上传
完成后进行文件完整度判断, 最终完成所有文件
块的上传; 当出现中断时, 从中断的当前文件块
开始进行重新上传, 对之前上传过的文件块不需
再重复上传。 本发明解决了在一次性上传大文件
过程中发送或接收过慢的问题, 节省了带宽; 同
时避免了相同文件多次上传, 节约服务器存储空
间, 节约用户操作时间, 提高了用户体验。
权利要求书2页 说明书6页 附图1页
CN 114095493 A
2022.02.25
CN 114095493 A
1.一种基于断点重传的文件上传方法, 其特 征在于, 所述文件上传方法包括如下步骤:
步骤S101, 客户端读取待上传文件, 获取文件信息;
步骤S102, 客户端将文件信息上传至服 务器;
步骤S103, 服务器根据所接收到的文件信息, 在服务器端搜索 是否存在相同文件; 若存
在, 则向客户端返回 “停止上传 ”命令; 若不存在, 则向客户端返回 “准备分块 ”命令;
步骤S104, 客户端接收到 “停止上传 ”命令后, 返回步骤S101; 客户端接收到 “准备分块 ”
命令后, 对文件分块, 记录总分块数, 并将总分块数 上传至服 务器;
步骤S105, 客户端向服务器上传当前MD5值下的当前文件块; 若出现上传中断, 则重复
执行步骤S10 5;
步骤S106, 服务器接收当前文件块并存储在相应的MD5值下, 实时更新已接收到且存储
在服务器内的当前MD 5值下的所有文件块, 统计并更新已接收文件块数; 若 出现信息更新中
断, 则返回步骤S10 5;
步骤S107, 服务器向客户端返回已接收文件块数, 请求客户端判断已上传文件块是否
已达总数; 若文件块数量未达总数, 则进入步骤S108; 若文件块数量已达总数, 则进入步骤
S109; 若出现信息传输中断, 则返回步骤S10 5;
步骤S108, 客户端将下一个待上传的文件块更新为当前文件块, 进入步骤S105; 若出现
信息更新中断, 则直接返回步骤S10 5;
步骤S109, 客户端上传结束, 并将结束的消息上传至服 务器;
步骤S110, 服务器接收到上传结束的消息后, 合并所接收的当前MD5值下的所有文件
块, 获得完整 文件, 完成文件上传。
2.根据权利要求1所述的基于断点重点的文件上传方法, 其特征在于, 所述方法还包
括:
浏览器与 服务器约 定两个应用程序接口API, 第一API接口用于上传文件信息, 第二API
用于上传文件块; 其中,
步骤S102的文件信息上传和步骤S104总分块数上传通过第一API实现, 步骤S105的文
件块上传, 通过第二API实现。
3.根据权利要求2所述的基于断点重点的文件上传方法, 其特征在于, 所述步骤S102中
的文件信息包括:
文件名称、 文件大小、 文件MD5值和/或鉴权 。
4.根据权利要求2所述的基于断点重点的文件上传方法, 其特征在于, 步骤S104对文件
分块后生成list.shift,且list.length为总分块数; 其中li st.shift记录每一个分块的编
号; 并将l ist.length通过第一API接口上传给服 务器。
5.根据权利要求4所述的基于断点重点的文件上传方法, 其特征在于, 步骤S105 中通过
list.shift取当前文件块并调用第二API接口, 进行 所取文件块的上传。
6.根据权利要求4所述的基于断点重点的文件上传方法, 其特征在于, 步骤S106统计并
更新已接收文件块数时, 在l ist.length中减去已接收文件块数。
7.根据权利要求6所述的基于断点重点的文件上传方法, 其特征在于, 步骤S107客户端
判断已上传文件块是否已达总数, 客户端通过第一API接口请求返回list.length; 当
list.length为0, 则判定为文件块数量已达总数; 若list.length不为0, 则判定为文件块数权 利 要 求 书 1/2 页
2
CN 114095493 A
2量未达总数。
8.一种基于断点重传的文件上传系统, 其特征在于, 所述文件上传系统包括设置在客
户端的文件读取模块、 第一交互模块、 分块模块、 第二交互模块、 总数判定模块及更新模块,
和设置在服务器端的第一API接口、 文件信息存储模块、 第二API接口、 文件块存储模块、 文
件块合成模块及文件 存储模块; 其中,
所述文件读取模块用于读取待上传文件, 获取文件信息;
第一交互模块用于将文件信息上传至第一API接口, 还用于接收到第一API接口的 “停
止上传”命令后, 启动文件读取模块, 接收到 “准备分块 ”命令后, 将命令转发给分块模块;
分块模块用于接收到 “准备分块 ”命令后, 对文件分块, 记录总分块数, 并将总分块数上
传至第一交 互模块;
第二交互模块用于向第二API接口上传当前MD5值下的当前文件块; 还用于当出现上传
中断时, 重复上传当前MD5值下的当前文件块;
所述总数判定模块用于判断已上传文件块是否已达总数; 若文件块数量未达总数, 则
启动更新模块; 若文件块数量已达总数, 则启动文件合成模块; 若出现信息传输中断, 则直
接启动第二交 互模块;
更新模块用于将下一个待上传的文件块更新 为当前文件块;
所述第一API接口用于根据所接收到的文件信息, 在文件存储模块中搜索是否存在相
同文件; 若存在, 则向第一交互模块返回 “停止上传 ”命令; 若不存在, 则向第一交互模块返
回“准备分块 ”命令; 还用于接收到文件块存储模块的反馈信息时统计并更新已接收文件块
数, 且当出现信息更新中断时, 直接启动第二交 互模块;
文件信息存储模块用于存储接收到的文件信息、 分块信息及总分块数, 并在文件合成
模块启动后 将文件信息发送给文件存储模块, 接收到文件存储模块的反馈信息后进行信息
重置;
第二API接口用于 接收当前 上传的文件块并发送给文件块存 储模块;
所述文件块存储模块用于将接收的文件块存储在相应的MD5值下, 实时更新已接收到
且存储在服务器内的当前MD5值下的所有 文件块, 并及时反馈给第一API接口;
所述文件块合成模块用于对文件块存储模块中的所有文件块进行合成, 并将合成后的
完整文件发送给文件 存储模块;
所述文件 存储模块用于存 储已上传的文件及相对应的文件信息 。权 利 要 求 书 2/2 页
3
CN 114095493 A
3
专利 一种基于断点重传的文件上传方法和系统
文档预览
中文文档
10 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 20:58:31上传分享