System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及文件传输,特别是一种文件上传的方法及系统。
技术介绍
1、传统的文件上传系统,用户必须完整的上传文件到文件服务器,文件服务器存储文件后,返回文件编号给用户,这样才算完成一次文件上传的过程。当用户需要上传大文件时,特别是在网络传输速度较慢或不稳定的情况下,上传过程需要较长的等待时间。这种传统的文件上传方式存在一些问题。
2、当不同用户重复上传相同的文件时,每个用户都需要执行一次完整的文件上传操作,这造成了文件上传过程的冗余,浪费了用户大量的时间和网络带宽。
3、另外,由于传统文件上传系统并未对重复文件进行有效处理,文件服务器需要存储大量重复的文件副本,导致磁盘空间的浪费。
4、现有技术中为了解决重复文件上传的问题,提出了文件秒传的方法,即在服务器中如果存在相同的文件,则通知用户无需上传文件,用户相当于快速完成了文件上传,实现秒传。
5、现有技术中文件秒传之前需要读取文件,并计算文件的哈希值,然而文件秒传之前读取文件耗时长,文件哈希值计算效率低下。
技术实现思路
1、本专利技术提供了一种文件上传的方法及系统,以解决现有技术中文件秒传之前读取文件耗时长,文件哈希值计算效率低下的技术问题。
2、本专利技术的一个方面在于提供一种文件上传的方法,所述方法包括如下方法步骤:
3、s1、客户端获取用户在客户端选择的待上传文件的文件路径信息;
4、s2、客户端利用用户在客户端选择的待上传文件的文件路径信
5、s3、客户端将用户在客户端选择的待上传文件分割为多个文件块,客户端依次读取用户在客户端选择的待上传文件的每一个文件块;
6、并且,客户端读取用户在客户端选择的待上传文件的每一个文件块后,计算对应的每一个文件块的哈希值;
7、s4、客户端依次将每一个文件块的哈希值拼接,生成用户在客户端选择的待上传文件的整体哈希值,并将整体哈希值转换为具有唯一标识的文件哈希值;
8、s5、客户端将用户在客户端选择的待上传文件的文件哈希值,发送至服务器;
9、s6、服务器对用户在客户端选择的待上传文件的文件哈希值进行重复性校验;
10、服务器根据待上传文件的文件哈希值的重复性校验结果,通知客户端文件秒传或者文件上传。
11、在一个优选的实施例中,在步骤s2中,客户端调用操作系统的文件io接口,利用用户在客户端选择的待上传文件的文件路径信息,打开用户在客户端选择的待上传文件。
12、在一个优选的实施例中,在步骤s3中,客户端按照如下方法,将用户在客户端选择的待上传文件分为多个文件块:
13、获取用户在客户端选择的待上传文件的文件大小,以待上传文件的文件大小除以512,计算待上传文件分割的文件块的数量;
14、其中,每一个文件块的文件块大小为512位。
15、在一个优选的实施例中,当待上传文件的文件大小不是512的整数倍,则将最后一个文件块的文件块大小补位为512位。
16、在一个优选的实施例中,在步骤s3中,客户端读取用户在客户端选择的待上传文件的每一个文件块后,按照如下方法计算对应的每一个文件块的哈希值:
17、对每一个文件块进行文件块扩展和迭代压缩,计算每一个文件块的哈希值。
18、在一个优选的实施例中,在步骤s6中,服务器通过如下方法,对用户在客户端选择的待上传文件的文件哈希值进行重复性校验:
19、服务器向数据库查询用户在客户端选择的待上传文件的文件哈希值;
20、当数据库中存在用户在客户端选择的待上传文件的文件哈希值,则数据库向服务器返回存在文件哈希值的应答信息;
21、服务器向客户端返回存在文件哈希值的应答信息,客户端完成文件秒传。
22、在一个优选的实施例中,服务器向数据库查询用户在客户端选择的待上传文件的文件哈希值;
23、当数据库中不存在用户在客户端选择的待上传文件的文件哈希值,则数据库向服务器返回不存在文件哈希值的应答信息;
24、服务器向客户端返回不存在文件哈希值的应答信息,客户端将待上传文件上传至服务器,并且服务器将待上传文件的文件哈希值写入数据库;
25、数据库向服务器返回文件哈希值写入成功的应答信息,服务器保存待上传的文件,并向客户端返回文件保存成功的应答信息,客户端完成文件上传。
26、本专利技术的另一个方面在于提供一种文件上传的系统,所述文件上传系统包括客户端、服务器和数据库;
27、所述客户端,用于获取用户在客户端选择的待上传文件的文件路径信息;
28、并利用用户在客户端选择的待上传文件的文件路径信息,打开用户在客户端选择的待上传文件;
29、以及将用户在客户端选择的待上传文件分割为多个文件块,依次读取用户在客户端选择的待上传文件的每一个文件块;
30、所述客户端读取用户在客户端选择的待上传文件的每一个文件块后,计算对应的每一个文件块的哈希值;
31、所述客户端依次将每一个文件块的哈希值拼接,生成用户在客户端选择的待上传文件的整体哈希值,并将整体哈希值转换为具有唯一标识的文件哈希值;
32、所述服务器,用于接收用户在客户端选择的待上传文件的文件哈希值,并向数据库查询用户在客户端选择的待上传文件的文件哈希值,
33、以及对用户在客户端选择的待上传文件的文件哈希值进行重复性校验,根据待上传文件的文件哈希值的重复性校验结果,通知客户端文件秒传或者文件上传;
34、所述数据库,用于存储文件哈希值。
35、在一个优选的实施例中,所述客户端按照如下方法,将用户在客户端选择的待上传文件分为多个文件块:
36、所述客户端获取用户在客户端选择的待上传文件的文件大小,以待上传文件的文件大小除以512,计算待上传文件分割的文件块的数量;
37、其中,每一个文件块的文件块大小为512位;
38、当待上传文件的文件大小不是512的整数倍,则将最后一个文件块的文件块大小补位为512位;
39、客户端读取用户在客户端选择的待上传文件的每一个文件块后,按照如下方法计算对应的每一个文件块的哈希值:
40、对每一个文件块进行文件块扩展和迭代压缩,计算每一个文件块的哈希值。
41、在一个优选的实施例中,所述服务器通过如下方法,对用户在客户端选择的待上传文件的文件哈希值进行重复性校验:
42、服务器向数据库查询用户在客户端选择的待上传文件的文件哈希值;
43、当数据库中存在用户在客户端选择的待上传文件的文件哈希值,则数据库向服务器返回存在文件哈希值的应答信息;
44、服务器向客户端返回存在文件哈希值的应答信息,客户端完成文件秒传;
45、当数据库中不存本文档来自技高网...
【技术保护点】
1.一种文件上传的方法,其特征在于,所述方法包括如下方法步骤:
2.根据权利要求1所述的方法,其特征在于,在步骤S2中,客户端调用操作系统的文件IO接口,利用用户在客户端选择的待上传文件的文件路径信息,打开用户在客户端选择的待上传文件。
3.根据权利要求1所述的方法,其特征在于,在步骤S3中,客户端按照如下方法,将用户在客户端选择的待上传文件分为多个文件块:
4.根据权利要求3所述的方法,其特征在于,当待上传文件的文件大小不是512的整数倍,则将最后一个文件块的文件块大小补位为512位。
5.根据权利要求1所述的方法,其特征在于,在步骤S3中,客户端读取用户在客户端选择的待上传文件的每一个文件块后,按照如下方法计算对应的每一个文件块的哈希值:
6.根据权利要求1所述的方法,其特征在于,在步骤S6中,服务器通过如下方法,对用户在客户端选择的待上传文件的文件哈希值进行重复性校验:
7.根据权利要求6所述的方法,其特征在于,服务器向数据库查询用户在客户端选择的待上传文件的文件哈希值;
8.一种文件上传的
9.根据权利要求8所述的系统,其特征在于,所述客户端按照如下方法,将用户在客户端选择的待上传文件分为多个文件块:
10.根据权利要求8所述的系统,其特征在于,所述服务器通过如下方法,对用户在客户端选择的待上传文件的文件哈希值进行重复性校验:
...【技术特征摘要】
1.一种文件上传的方法,其特征在于,所述方法包括如下方法步骤:
2.根据权利要求1所述的方法,其特征在于,在步骤s2中,客户端调用操作系统的文件io接口,利用用户在客户端选择的待上传文件的文件路径信息,打开用户在客户端选择的待上传文件。
3.根据权利要求1所述的方法,其特征在于,在步骤s3中,客户端按照如下方法,将用户在客户端选择的待上传文件分为多个文件块:
4.根据权利要求3所述的方法,其特征在于,当待上传文件的文件大小不是512的整数倍,则将最后一个文件块的文件块大小补位为512位。
5.根据权利要求1所述的方法,其特征在于,在步骤s3中,客户端读取用户在客户端选择的待上传文件的每一个文件块后,按照如下...
【专利技术属性】
技术研发人员:郭大勇,刘小平,
申请(专利权)人:上海通办信息服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。