一种文件上传、保存方法及装置的制造方法

文档序号:9474332阅读:349来源:国知局
一种文件上传、保存方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网数据传输技术领域,尤其涉及一种文件上传、保存方法及装置。
【背景技术】
[0002]基于互联网超文本传输协议(HTTP, Hypertext transfer protocol)的文件上传和下载技术都已经较为成熟,使用也很广泛。一般的浏览器上都支持对文件下载的断点续传,当用户下载一个文件时,只要勾选“断点续传”单选框就能够使用该功能。但对于基于HTTP协议的文件上传服务,浏览器却没有支持。
[0003]在浏览器中,为了上传文件一般是使用一个标记为multipart/form-data的表单,向服务器发送post请求,并把该文件作为一个数据字段放在请求的数据中上传。每次上传一个文件都是一次性的,只有当文件完全上传到服务器以后,服务器通过执行脚本将上传的文件保存在服务器后,才会返回告诉浏览器上传已完成。如果文件没有完全上传到服务器,服务器并不会保存上传的文件,因此,在这种情况下也不会向客户端有任何反馈。如果上传失败,浏览器对于上传进度也就无从知晓,进一步也就不知道下次上传的起始位置。因此,用户就需要完全重新再次上传。
[0004]目前为了支持文件上传的断点续传功能,一种方案是在浏览器中使用ActiveX控件,但这种方式需要安装ActiveX控件,而现有的浏览器中只有IE浏览器支持ActiveX控件,其他浏览器都不支持ActiveX控件,这种方式对浏览器类型的依赖性较强。另一种方案是通过Java或者C语言编写的客户端来实现断点续传,需要重新开发编译一些专门能够实现断点续传的客户端。
[0005]现有技术中存在以下不足:
[0006]只能通过对浏览器安装Active控件或者重新开发客户端来支持文件上传的断点续传功能,现有的文件断点续传方式实现起来比较复杂。

【发明内容】

[0007]本发明提出了一种文件上传、保存方法及装置,不需要客户端安装ActiveX控件或者重新编译,简单方便的实现文件上传的断点续传。
[0008]本发明提供了一种文件上传方法,包括以下步骤:
[0009]确定需上传文件,并给予文件标识;
[0010]将文件切割成文件块后,在上传请求中携带文件标识,并依次上传文件块;
[0011]在文件传输中断时,请求返回上传进度,并在上传进度返回后根据上传进度上传需上传文件中的未上传文件部分。
[0012]本发明还提供了一种文件保存方法,包括以下步骤:
[0013]保存终端依次上传的需上传文件的文件块,并在每次保存成功后更新需上传文件的上传进度;
[0014]在文件传输中断时,接收终端的上传进度请求,请求中包括需上传文件的文件标识;
[0015]发送与文件标识对应的上传进度,并在上传进度发送后接收并保存终端上传的需上传文件的未上传文件部分。
[0016]本发明还提供了一种文件上传装置,包括:
[0017]确定单元,用于确定需上传文件,并给予文件标识;
[0018]切割单元,用于将该文件切割成文件块;
[0019]上传单元,用于在将文件切割成文件块后,在上传请求中携带文件标识,并依次上传文件块;在文件传输中断时,请求返回上传进度,并在上传进度返回后根据上传进度上传需上传文件中的未上传文件部分。
[0020]本发明还提供了一种文件保存装置,包括:
[0021]保存单元,用于保存终端依次上传的需上传文件的文件块,并在每次保存成功后更新需上传文件的上传进度;
[0022]接收单元,用于在文件传输中断时,接收终端发送的上传进度请求,请求中包括需上传文件的文件标识;
[0023]发送单元,用于发送与该文件标识对应的上传进度;
[0024]接收单元进一步用于在上传进度发送后接收终端上传的需上传文件的未上传文件部分;保存单元进一步用于保存该未上传文件部分。
[0025]本发明的有益效果如下:
[0026]终端侧确定需要上传的文件并给予其文件标识,将该文件切割成文件块以后向网络侧发送上传请求,请求中携带该文件标识,依次上传文件块;网络侧维护与该文件标识对应的上传进度,每次保存成功后更新该上传进度。在发生文件传输中断时,终端可以根据该文件标识从网络侧获取与该文件标识对应的上传进度,从而确定需上传文件中的未上传文件部分,从上一次中断处对该文件进行续传,实现文件的断点上传。由于在本发明实施例提供的技术方案中,仅需要根据网络侧记录的与文件标识对应的上传进度,即可确定下一个需要上传的文件块,因此采用本发明实施例提供的技术方案,用户无需安装浏览器控件或重新开发客户端即可实现文件上传的断点续传,操作简便。
【附图说明】
[0027]下面将参照附图描述本发明的具体实施例,其中:
[0028]图1为本发明实施例中文件上传方法的流程示意图;
[0029]图2为本发明实施例中文件保存方法的流程示意图;
[0030]图3为本发明实施例中文件上传装置的结构示意图;
[0031]图4为本发明实施例中文件保存装置的结构示意图。
【具体实施方式】
[0032]为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
[0033]本发明实施例中提供了一种终端侧的文件上传方法,以及一种网络侧的文件保存方法,下面进行说明。
[0034]在终端侧、网络侧分别可以按如下方式实施。在说明过程中,将分别从终端与网络侧的实施进行说明,但这并不意味着二者必须配合实施,实际上,当终端与网络分开实施时,其也各自解决终端侧、网络侧的问题,只是二者结合使用时,会获得更好的技术效果。
[0035]图1为终端侧的文件上传方法实施流程示意图,如图1所示,可以包括以下步骤:
[0036]步骤101、确定需上传文件,并给予文件标识。
[0037]浏览器客户端可以通过用户在浏览器网页上进行的操作来确定需上传文件,例如,用户将待上传的文件拖拽到浏览器网页,也可以是通过表单提交待上传文件,还可以在摄像头拍摄照片以后浏览器通过调用系统底层程序来指示将所拍摄的照片上传。很显然,确定需上传文件的方式还可以有多种方式,本发明对此不作限制。
[0038]实施中,文件标识可以为对该文件进行全文哈希操作后得到的哈希值。
[0039]其中,哈希一般也称hash,就是把任意长度的输入通过散列算法变换成固定长度的输出,输出值为hash值。本发明实施例hash是将文件的全文内容作为一个字符串或二进制字符串来计算hash值,计算hash值所采用的hash算法可以是现有的MD5 (信息摘要算法 5, Message-DigestAlgorithm 5)、N-HASH 等主流算法。
[0040]在实施中采用MD5、N-HASH等算法是由于这些算法比较主流、常用,易于本领域技术人员使用,所以这里以MD5、N-HASH为例;但是,从理论上来说,用其他的hash算法也是可以的,只要能够实现计算文件全文的唯一 ID值的目的即可,MD5、N-HASH仅用于教导本领域技术人员具体如何实施本发明,但不意味仅能使用MD5、N-HASH算法,实施过程中可以结合实践需要来确定相应的算法。
[0041]步骤102、将该文件切割成文件块后,在上传请求中携带文件标识,并依次上传文件块。
[0042]浏览器客户端在该网页上执行Javascript脚本,计算待上传文件的全文hash值作为该文件的唯一 ID,利用该网页上的Javascript脚本将待上传文件切割成文件块。
[0043]切割过程的具体实施可以为:根据切割算法对文件进行切割,切割可以根据文件的行数或文件的大小等进行切割,也可以采用其他的方式对文件进行切割,可以理解,根据文件行数或大小等进行切割仅用于教导本领域技术人员具体如何实施本发明,但不意味仅能按照文件行数或文件大小进行切割,实施过程中可以结合实践需要来确定切割方式。本发明对此不作限制。一般情况下,一个2MB的文件切割后的文件块大概在50KB左右,文件越大切割后的文件块越大。
[0044]步骤103、在文件传输中断时,请求返回上传进度,并在上传进度返回后根据上传进度上传需上传文件的未上传文件部分。
[0045]实施中,网络侧的服务器记录有浏览器客户端发送的文件标识以及该文件的上传进度。
[0046]例如,文件的上传进度为fc3ff98e8c6a0d3087d515c0473f8677:2300,其中fc3ff98e8c6a0d3087d515c0473f8677表示上传文件对应的文件标识,而2300则表示上传的进度(以字节为单位),也即当前上传的文件块在2300字节处。
[0047]实施中,根据上传进度上传需上传文件中的未上传文件部分可以包括:
[0048]根据上传进度,确定未上传文件部分的起始位置;
[0049]根据未上传文件部分的起始位置,在上传请求中携带文件标识和起始位置,并依次上传未上传文件部分的文件块。
[
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1