[发明专利]一种基于JavaScript的文件上传方法及装置在审
申请号: | 201710674572.1 | 申请日: | 2017-08-09 |
公开(公告)号: | CN107426331A | 公开(公告)日: | 2017-12-01 |
发明(设计)人: | 张乃文 | 申请(专利权)人: | 北京天信瑞安信息技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F17/30 |
代理公司: | 北京隆源天恒知识产权代理事务所(普通合伙)11473 | 代理人: | 闫冬 |
地址: | 100094 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 javascript 文件 上传 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种基于JavaScript的文件上传方法及装置。
背景技术
从浏览器上传文件是常用的功能,目前主要有三种实现方式:1.基于Flash的上传;2.基于浏览器form的上传;3.基于流的上传。上述三种实现方式都需将文件内容全部上传到服务器。而“秒传”是一种在网盘上常见的“忽略式”上传方式,是现有基于客户端文件上传的一种优化方法,其原理为:如果文件已经在服务器上存在,便无法再次上传完整的文件内容。
基于客户端的秒传需要下载特定客户端,使用不方便。基于浏览器的文件上传技术总是需要上传完整的文件内容,很多时候具有浪费流量,浪费宽带,加大用户时间等待时间的缺点。
鉴于上述缺陷,本发明创作者经过长时间的研究和实践终于获得了本发明。
发明内容
为解决上述技术缺陷,本发明采用的技术方案在于,提供一种基于JavaScript的文件上传方法,其步骤为:
步骤S1,选择需要上传的文件;
步骤S2,通过JavaScript对文件进行分块;
步骤S3,计算并保存文件指纹;
步骤S4,将指纹发送到服务器并进行验证。
较佳的,所述步骤S2中分块方法为:
其中,
a表示需上传文件的大小,单位为Gb;
b表示分块大小,单位为Gb;
c表示分块个数,c>0,且c为整数;
k为附加量,单位为Gb。
较佳的,所述步骤S4具体为:如果验证通过,执行步骤S4-1,如果验证未通过,执行步骤S4-2:
步骤S4-1从服务器上直接复制
可以从服务器上直接复制,无需从浏览器上上传文件的内容;
步骤S4-2从浏览器上传文件
从浏览器上上传文件的内容。
较佳的,所述步骤3中采用SHA-x系列的哈希算法。
较佳的,所述步骤3中采用SHA-1算法。
较佳的,所述步骤3中采用SHA-256算法。
本发明还提供一种基于JavaScript的文件上传装置,其包括:
上传单元:用来选择并上传文件;
分块单元:通过JavaScript对所述文件进行分块;
计算单元:用来计算并保存文件指纹;
验证单元:用来验证所述指纹。
与现有技术比较本发明的有益效果在于:
1,本发明基于浏览器秒传技术,需要文件服务器和Web页面配合,用户使用浏览器上传文件时,如果文件之前已经上传过,则无需再次上传,上传立刻完成,节省浏览器里上传文件的时间,节省宽带。该方法能够快速计算出最合适的分块大小,充分满足执行速度、信息角度、内存消耗、稳定性等多方面的要求,每次有需要上传的文件,运行程序,自动计算出最合适的分块大小,并实施分块。
2,本发明也支持浏览器里直接上传目录,用户目录下如果有相同内容的文件,相同的部分仅需占用一次宽带。
3,本发明采用最新的JavaScript技术,高效地在浏览器里计算高强度的文件指纹,目前可以做到100MB/秒左右,这样100MB的文件在1秒内就可上传到服务端,浏览器客户端和服务器之间仅需很小的网络宽带用于发送消息。
4,采用SHA-x系列的哈希算法,比传统的MD5算法具有更高的安全性。碰撞几率小,有效避免不同文件出现相同hash的情况,能够兼顾安全性和速度两方面的标准。
附图说明
为了更清楚地说明本发明各实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本发明方法的流程图;
图2是本发明装置的系统框图。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
实施例1
本发明提供一种基于JavaScript的文件上传方法,基于浏览器秒传的实施,需要文件服务器和Web页面配合。用户使用浏览器上传文件时,文件服务器会将文件按固定大小进行分块,计算并保存每个分块的文件指纹。如果文件之前已经上传过,则无需再次上传,上传立刻完成,能够节省浏览器上传文件的时间,节省宽带。
如图1所示,其为本发明一种JavaScript的文件上传技术的流程图,本发明的具体实施步骤如下:
步骤S1选择需要上传的文件
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天信瑞安信息技术有限公司,未经北京天信瑞安信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710674572.1/2.html,转载请声明来源钻瓜专利网。