基于Blob对象分段读取大文件提高上传效率的方法技术

技术编号:24254334 阅读:45 留言:0更新日期:2020-05-23 01:06
本发明专利技术公开了一种基于Blob对象分段读取大文件提高上传效率的方法,包括以下步骤:将需要传输的文件载入浏览器;转换文件成

A method to improve upload efficiency based on blob object segment reading large files

【技术实现步骤摘要】
基于Blob对象分段读取大文件提高上传效率的方法
本专利技术涉及软件开发
,具体来说,涉及一种基于Blob对象分段读取大文件提高上传效率的方法。
技术介绍
Web应用中上传数据是一个很常见的数据传输操作。目前大多数直接上传文件方式会导致数据不稳定,比如容易由于网络中断或者文件过大导致上传终端,令使用者必须重新手动上传,影响了工作效率。由于HTTP兴起,浏览器增加了Ajax和Blob等接口,使得Web端能够使用JavaScript对本地文件直接上传的功能。HTTP(超文本传输协议)是用来在Web上传输文件的基础协议,基于TCP/IP通信协议来传递数据,最典型的是在浏览器和服务器之间传递以至于上网人员可以浏览他们。目前HTTP说明文档的版本是HTTP/2。Ajax是指AsynchronousJavaScript+XML(异步JavaScript和XML),其本身不是一种新技术,而是一个在2005年被JesseJamesGarrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括:HTMLorXHTML,CascadingStyleSheets,JavaScript,TheDocumentObjectModel,XML,XSLT以及最重要的XMLHttpRequestobject。当使用结合了这些技术的AJAX模型以后,网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作,并提升了使用效率。Blob对象表示一个不可变、原始数据的类文件对象。Blob表示的不一定是JavaScript原生格式的数据。File接口基于Blob,继承了Blob的功能并将其扩展使其支持用户系统上的文件。MD5信息摘要算法(英语:MD5Message-DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(RonaldLinnRivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在RFC1321标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。在现有技术中传输大量数据时常常上传失败,需要频繁上传,服务器端文件合并过程中用户等待超时及合并文件错误性严重。
技术实现思路
针对相关技术中的上述技术问题,本专利技术提出一种基于Blob对象分段读取大文件提高上传效率的方法,能够克服现有技术的上述不足。为实现上述技术目的,本专利技术的技术方案是这样实现的:一种基于Blob对象分段读取大文件提高上传效率的方法,该方法包括以下步骤:S1:将需要传输的文件载入浏览器;S2:采用JavaScript,转换文件成Blob对象,获取Blob对象的特征值,其中,特征值为md5;S3:采用JavaScript,分割Blob对象成若干片段,获取若干片段特征值;S4:保存原始Blob对象和分割后的片段的特征值为一个特征对象,采用浏览器,传输所述特征对象到服务端;S5:采用Ajax,传输分割后的片段到服务端;S6:服务端检查特征值和数据的一致性;S7:服务端合并片段,检查所述特征对象中的原始Blob对象和合并后文件的特征值的一致性,完成文件上传。进一步的,所述步骤S1包括以下步骤:S11:准备需要传输的文件;S12:将文件载入本地文件系统;S13:采用浏览器,从本地文件系统中获取文件。进一步的,所述步骤S3包括以下步骤:S31:获取Blob对象数据长度;S32:设定片段长度;S33:依据Blob对象数据长度,分割Blob对象成若干对应片段长度的片段;S34:查找并记录若干片段的特征值。进一步的,所述步骤S6包括以下步骤:S61:获取片段数据信息;S62:获取所述特征对象中的分割片段的特征值;S63:分析比较分割片段和所述特征对象中的分割片段的特征值。进一步的,所述步骤S7包括以下步骤:S71:服务器依照顺序合并片段成一个文件;S72:获取所述特征对象中的原始Blob对象的特征值;S73:分析比较所述特征对象中的原始Blob对象和合并后文件的特征值。本专利技术的有益效果:通过该方法,解决了数据传输中受文件大小的限制的问题,实现了信息传递的完整性,提高了数据的传输效率,为海量Web应用上传数据提供了基础。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术实施例所述的基于Blob对象分段读取大文件提高上传效率的方法的流程框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,根据本专利技术实施例所述的基于Blob对象分段读取大文件提高上传效率的方法,包括以下步骤:S1:将需要传输的文件载入浏览器;S2:采用JavaScript,转换文件成Blob对象,获取Blob对象的特征值,其中,特征值为md5;S3:采用JavaScript,分割Blob对象成若干片段,获取若干片段特征值;S4:保存原始Blob对象和分割后的片段的特征值为一个特征对象,采用浏览器,传输所述特征对象到服务端;S5:采用Ajax,传输分割后的片段到服务端;S6:服务端检查特征值和数据的一致性;S7:服务端合并片段,检查所述特征对象中的原始Blob对象和合并后文件的特征值的一致性,完成文件上传。步骤S1包括以下步骤:S11:准备需要传输的文件;S12:将文件载入本地文件系统;S13:采用浏览器,从本地文件系统中获取文件。步骤S3包括以下步骤:S31:获取Blob对象数据长度;S32:设定片段长度;S33:依据Blob对象数据长度,分割Blob对象成若干对应片段长度的片段;S34:查找并记录若干片段的特征值。步骤S6包括以下步骤:S61:获取片段数据信息;S62:获取所述特征对象中的分割片段的特征值;S63:分析比较分割本文档来自技高网
...

【技术保护点】
1.一种基于Blob对象分段读取大文件提高上传效率的方法,其特征在于,包括以下步骤:/nS1:将需要传输的文件载入浏览器;/nS2:采用

【技术特征摘要】
1.一种基于Blob对象分段读取大文件提高上传效率的方法,其特征在于,包括以下步骤:
S1:将需要传输的文件载入浏览器;
S2:采用JavaScript,转换文件成Blob对象,获取Blob对象的特征值,其中,特征值为md5;
S3:采用JavaScript,分割Blob对象成若干片段,获取若干片段特征值;
S4:保存原始Blob对象和分割后的片段的特征值为一个特征对象,采用浏览器,传输所述特征对象到服务端;
S5:采用Ajax,传输分割后的片段到服务端;
S6:服务端检查特征值和数据的一致性;
S7:服务端合并片段,检查所述特征对象中的原始Blob对象和合并后文件的特征值的一致性,完成文件上传。


2.根据权利要求1所述的基于Blob对象分段读取大文件提高上传效率的方法,其特征在于,所述步骤S1包括以下步骤:
S11:准备需要传输的文件;
S12:将文件载入本地文件系统;
S13:采用浏览器,从本地文件系统中获取文件。

【专利技术属性】
技术研发人员:徐汕谢水庚刘强罗洪涛高淑敏刘思聪黄非姜桥
申请(专利权)人:北京航天云路有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1