一种上传文件的方法和系统的制作方法

文档序号:7974592阅读:152来源:国知局
专利名称:一种上传文件的方法和系统的制作方法
技术领域
本发明涉及网络传输技术,特别涉及一种上传文件的方法和系统。
背景技术
随着互联网的迅速发展,网路上的各种资源越来越多,大量的用户通过互 联网下载自己需要的资源,很多用户也将自己的资源上传到网上,供其他用户 下载。
目前,用户从服务器在下载文件时,服务器支持多个任务同时下载。具体
是这样实现的服务器根据设定的分块数将文件分成多个数据块,在数据块中 添加数据信息将文件的每个数据块同时发送给客户端;客户端在收到数据块 后,根据数据块的数据信息合成文件进行保存。这样能够加快用户下载文件的 速度。
但是在上传文件时,只能单个任务进行上传,不能充分利用上行带宽的资 源。如果上传的文件容量比较小,不会对用户造成影响;如果上传的文件容量 比较大,因为不能充分利用上行带宽的资源,从而降低了上传的效率,增加了 上传的时间。进行单任务上传时,对于带宽越大的用户,上行带宽资源的利用 率越低。
综上所述,现有上传文件的方法,不能充分利用上行带宽的资源,从而降 低了上传文件的速度和上行带宽的利用率,增加了上传文件的时间。

发明内容
本发明的目的是提供一种上传文件的方法和系统,用以解决现有技术中存 在的上行带宽利用率低的问题。
本发明提供的 一种上传文件的方法包括
A、 客户端将需要上传的文件分成数据块;
B、 所述客户端将该文件的数据块发送给服务器,并且,至少同时发送该 文件的两个数据块;
C、 所述服务器将接收到的数据块组成文件。
所述客户端按照用户设置的上传文件要分成数据块的数量,或根据网络带 宽信息确定数据块的数量,将需要上传的文件分成数据块。 步骤A之前包括
所述客户端判断用户是否设置上传文件要分成数据块的数量,如果是,则 按照该数量将需要上传的文件分成数据块,否则,根据网络带宽信息将需要上 传的文件分成数据块。
在步骤A之后,步骤B之前还进一步包括
在所述数据块中添加数据信息,所述数据信息包括文件标识和数据块的 位置信息;
则步骤C包括所述服务器接收到数据块后,根据该数据块中的文件标识 和数据块的位置信息将该数据块保存到对应文件的相应位置上。
所述数据信息还包括文件容量,则在步骤C之后,还进一步包括
服务器查看组成的该文件的容量,当该文件的容量等于所述数据信息中文 件的容量时,确认该文件组装完成。
本发明提供的一种上传文件的系统,该系统包括
客户端,用于将需要上传的文件分成数据块,并将该文件的数据块发送给 服务器,并且,至少同时发送该文件的两个数据块; 服务器,用于将接收到的数据块组成文件。
所述客户端,用于按照用户设置的上传文件要分成数据块的数量,或根据
来自带宽速率模块的网络带宽信息确定数据块的数量,将需要上传的文件分成 数据块。所述客户端包括
判断模块,用于用于判断用户是否设置上传文件要分成数据块的数量,如 果是,则将用户设置的数量发送给分配模块,否则,根据来自带宽速率模块的 网络带宽信息确定数据块的数量,并将该数量发送给分配模块;
分配模块,用于按照收到的数量将需要上传的文件分成数据块;
发送模块,用于将该文件的数据块发送给服务器,并且,至少同时发送该 文件的两个数据块。
所述判断^t块进一步用于
在确定用户没有设置上传文件要分成数据块的数量时,根据来自带宽速率 模块的网络带宽信息确定数据块的数量,并将该数量发送给分配模块。
所述客户端还进一步包括信息设置模块,用于在所述发送模块向所述服 务器发送的数据块中添加数据信息,所述数据信息包括文件标识和数据块的位 置信息;
则所述服务器包括
接收模块,用于接收数据块;
处理模块,用于根据接收到的数据块中的文件标识和数据块的位置信息将 该数据块保存在对应文件的相应位置上。
所述数据信息还可以包括文件容量,则所述服务器还可以包括
验证模块,用于查看所述文件的容量,当该文件的容量等于所述数据信息 中文件的容量时,确认该文件组装完成。
本发明客户端将需要上传的文件分成数据块,在数据块中添加数据信息,
将至少两个数据块同时发送给服务器;服务器根据收到的数据块中的数据信息
将该数据块保存到对应文件的相应位置上,组成完整的文件进行保存,从而提 高了上传文件的速度和上行带宽的利用率。客户端还可以根据网络带宽信息自
动将需要上传的文件分成数据块,从而充分利用上行带宽上传文件;或者根据 用户设置的上传文件要分成数据块的数量将需要上传的文件分成数据块,从而 满足不同用户的要求。


图1为本发明系统组成的连接框图2A为本发明客户端组成的结构示意图2B为本发明服务器组成的结构示意图3为实现本发明上传文件方法的流程示意图4为本发明实施例的流程示意图。
具体实施例方式
针对现有技术中存在的上传文件时,上行带宽利用率低的问题,本发明通 过客户端将文件分成一个以上的数据块,将每个数据块同时发送给服务器,从
而解决了上述问题。
图1为本发明系统组成的结构框图。如图1所示,本发明上传文件系统包
括客户端10和服务器20。
客户端IO,与服务器20和带宽速率模块30连接,用于将需要上传的文件
分成数据块,并将该文件的数据块发送给服务器20,并且,至少同时发送该文
件的两个数据块。
服务器20,用于将接收到的客户端IO发送的数据块组成文件。 数据信息至少包括文件标识、数据块的位置信息和文件容量。 客户端10按照用户设置的上传文件要分成数据块的数量,或根据来自带
宽速率模块30的网络带宽信息确定数据块的数量,将需要上传的文件分成数据块。
如果用户没有设置分成数据块的数量或者客户端10不能根据用户的设置 得到数据块的数量,则客户端10通过来自带宽速率模块30的网络带宽信息, 确定数据块的数量。
网络带宽信息可以是网络带宽的速率、类型等等。
客户端10根据网络带宽信息确定数据块的数量,比如网络带宽信息是 网络带宽速率,则将网络带宽速率除以100,将数值取整后,得到数据块的数 量;或者将网络带宽设定多个范围,不同的范围对应不同的数据块数量。
客户端IO按照该数量将需要上传的文件分成数据块可以平均分数据块, 也可以随机分数据块。
图2A为本发明客户端组成的结构示意图。如图2A所示,本发明客户端 IO包括判断模块100、分配模块110和发送模块120。
判断模块100,与带宽速率模块30和分配模块110连接,用于判断用户是 否设置上传文件要分成数据块的数量,如果是,则将用户设置的数量发送给分 配模块,否则,根据来自带宽速率模块30的网络带宽信息确定数据块的数量, 并将该数量发送给分配模块110。
分配模块110,与判断模块100和发送模块120连接,用于按照来自判断 模块100的数量将需要上传的文件分成数据块,向发送模块120发送上传消息。
发送模块110,与服务器20和分配模块110连接,用于收到来自分配模块 的上传消息后,将需要上传的文件的数据块发送给服务器20,并且,至少同时 发送该文件的两个数据块。
图2B为本发明服务器组成的结构示意图。如图2B所示,本发明服务器 20包括接收模块200和处理模块210。
接收模块200,与客户端10和处理模块210连接,用于接收客户端10发 送的数据块,并将数据块发送给处理模块210。
处理模块210,与接收模块200和验证模块220连接连接,用于根据接收 到的数据块中的文件标识和数据块的位置信息将该数据块保存在对应文件的 相应位置上。
验证模块220,与处理模块210连接,用于查看处理模块210中接收到的 文件的容量,当该文件的容量等于所述数据信息中文件的容量时,确认该文件
组装完成。
其中,处理模块210还包括控制模块2100和执行模块2110。
控制模块2100,与接收模块200、验证模块220和执行模块2110连接, 用于接收到数据块后,根据数据信息中的文件标识查看是否有相同标识的文 件,如果有,则向执行模块2110发送接收到的数据;否则,建立一个相同标 识的文件,并在文件标识后增加后缀标记。
执行模块2110,与验证模块220和控制模块2100连接,用于在收到来自 控制模块2100的数据块后,根据数据信息中的文件标识和位置信息,将该数 据块保存到对应文件的位置上。
验证模块220在确认文件组装完成后,删除处理模块210中对应文件标识 的后缀标记。
图3为实现本发明上传文件方法的流程示意图。如图3所示,本发明的方
法包括下列步骤
步骤300、客户端将需要上传的文件分成数据块。
步骤301、客户端根据每个数据块在文件中的位置进行编号。
步骤302、客户端将数据信息放到数据块中,将数据块发送给服务器,并
且,至少同时发送该文件的两个数据块。
步骤303、服务器将接收到数据块组成文件。
客户端可以按照用户设置的上传文件要分成数据块的数量,或根据网络带 宽信息确定数据块的数量,将需要上传的文件分成数据块;或者,
客户端判断用户是否设置上传文件要分成数据块的数量,如果是,则按照 该数量将需要上传的文件分成数据块,否则,根据网络带宽信息将需要上传的 文件分成数据块。
客户端将文件除最后一个数据块外的每个数据块按顺序编为[n,n+l),文件 的最后一个数据块的位置编号为[n,n+2)。
其中,n代表数据块最前端在文件中的位置,n+l代表该数据块末端在文
件中的位置。比如如杲一个lt据块在文件最前端,则n值为0,第一个数据 块的位置编号为[O, 1), O就代表该数据块最前端在文件中的位置,0+1就代表 该数据块末端在文件中的位置,第二个数据块的n值就为1,位置编号为[1,2), 如果第二个数据块是最后一个数据块,则位置编号为[l, 3)。
客户端将数据信息放到数据块中,从文件的n位置开始发送数据,到文件 的n+l位置停止发送数据,并且不发送n+l位置上的数据,因为文件的最后一 个数据块的位置编号为[n,n+2),实际上n+l位置就是文件的最后一个数据,客 户端将文件最后一个数据块n+l处的数据发送后,停止发送数据。这样就能保 证将文件的每一 个数据完整的发送给服务器。
图4为本发明实施例的流程示意图。如图4所示,本发明实施例包括下列 步骤
步骤400、客户端判断用户是否设置上传文件要分成数据块的数量,如果
是,则执行步骤401;否则,执行步骤402。
步骤401、客户端按照用户设置的上传文件要分成数据块的数量,将需要
上传的文件分成数据块,执行步骤403。
步骤402、客户端根据网络带宽信息,将需要上传的文件平均分成数据块。 步骤403 、客户端根据每个数据块在文件中的位置进行编号。 步骤404、客户端将数据信息分别保存到每个数据块中。 步骤405、客户端将所有数据块同时发送给服务器。
步骤406、服务器收到数据块后,根据数据信息中的文件标识查看是否保 存有该文件标识对应的文件,如果有,则执行步骤409;否则,执行步骤407。
步骤407、服务器根据收到的数据块中的数据信息中的文件标识,建立一 个相同标识的文件,并在文件标识后增加后缀标记
步骤408、服务器将数据块保存到新建的文件中,执行步骤410。
步骤409、服务器根据数据信息中的位置信息,将收到数据块保存到文件 名对应的位置上。
步骤410、服务器保存数据块中的数据信息,根据数据信息中的文件标识 找到对应的文件,并查看对应文件的容量,在文件的容量等于数据信息中文件 的容量时,删除该文件的所有数据信息和该文件标识的后缀标记。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种上传文件的方法,其特征在于,该方法包括A、客户端将需要上传的文件分成数据块;B、所述客户端将该文件的数据块发送给服务器,并且,至少同时发送该文件的两个数据块;C、所述服务器将接收到的数据块组成文件。
2、 如权利要求1所述上传文件的方法,其特征在于,所述客户端按照用 户设置的上传文件要分成数据块的数量,或根据网络带宽信息确定数据块的数 量,将需要上传的文件分成数据块。
3、 如权利要求1所述上传文件的方法,其特征在于,步骤A之前包括 所述客户端判断用户是否设置上传文件要分成数据块的数量,如果是,则按照该数量将需要上传的文件分成数据块,否则,根据网络带宽信息将需要上 传的文件分成数据块。
4、 如权利要求1所述上传文件的方法,其特征在于,在步骤A之后,步 骤B之前还进一步包括在所述数据块中添加数据信息,所述数据信息包括文件标识和数据块的 位置信息;则步骤C包括所述服务器接收到数据块后,根据该数据块中的文件标识 和数据块的位置信息将该凄t据块保存到对应文件的相应位置上。
5、 如权利要求4所述上传文件的方法,其特征在于,所述数据信息还包 括文件容量,则在步骤C之后,还进一步包括服务器查看组成的该文件的容量,当该文件的容量等于所述数据信息中文 件的容量时,确认该文件组装完成。
6、 一种上传文件的系统,其特征在于,该系统包括客户端,用于将需要上传的文件分成数据块,并将该文件的数据块发送给 服务器,并且,至少同时发送该文件的两个数据块;服务器,用于将接收到的数据块组成文件。
7、 如权利要求6所述上传文件的系统,其特征在于,所述客户端,用于 按照用户设置的上传文件要分成数椐块的数量,或根据来自带宽速率模块的网 络带宽信息确定数据块的数量,将需要上传的文件分成数据块。
8、 如权利要求6所述上传文件的系统,其特征在于,所述客户端包括 判断模块,用于判断用户是否设置上传文件要分成数据块的数量,如果是,则将用户设置的数量发送给分配模块,否则,根据来自带宽速率模块的网络带宽信息确定数据块的数量,并将该数量发送给分配模块;分配模块,用于按照收到的数量将需要上传的文件分成数据块; 发送模块,用于将该文件的数据块发送给服务器,并且,至少同时发送该文件的两个凄t纟居块。
9、 如权利要求6所述上传文件的系统,其特征在于,所迷客户端还进一 步包括信息设置模块,用于在所述发送模块向所述服务器发送的数据块中添 加数据信息,所述数据信息包括文件标识和数据块的位置信息;则所述服务器包括 接收模块,用于接收数据块;处理模块,用于根据接收到的数据块中的文件标识和数据块的位置信息将 该数据块保存在对应文件的相应位置上。
10、 如权利要求9所述上传文件的系统,其特征在于,所述数据信息还包 括文件容量,则所述服务器还包括验证模块,用于查看所述文件的容量,当该文件的容量等于所述数据信息 中文件的容量时,确认该文件组装完成。
全文摘要
本发明公开了一种上传文件的方法,该方法包括A.客户端将需要上传的文件分成数据块;B.所述客户端将该文件的数据块发送给服务器,并且,至少同时发送该文件的两个数据块;C.所述服务器将接收到的数据块组成文件。通过本发明解决了现有技术中存在的不能充分利用上行带宽上传文件的问题。本发明同时公开了一种上传文件的系统。
文档编号H04L12/00GK101179392SQ20061016582
公开日2008年5月14日 申请日期2006年12月12日 优先权日2006年12月12日
发明者伍海君 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1