CN101179392B - 一种上传文件的方法和系统 - Google Patents
一种上传文件的方法和系统 Download PDFInfo
- Publication number
- CN101179392B CN101179392B CN200610165822A CN200610165822A CN101179392B CN 101179392 B CN101179392 B CN 101179392B CN 200610165822 A CN200610165822 A CN 200610165822A CN 200610165822 A CN200610165822 A CN 200610165822A CN 101179392 B CN101179392 B CN 101179392B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- data blocks
- information
- files
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 4
- 238000011144 upstream manufacturing Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种上传文件的方法,该方法包括:A、客户端将需要上传的文件分成数据块,在所述数据块中添加数据信息,所述数据信息包括:文件标识和数据块的位置信息;B、所述客户端将该文件的数据块发送给服务器,并且,至少同时发送该文件的两个数据块;C、所述服务器接收到数据块后,根据该数据块中的文件标识和数据块的位置信息将该数据块保存到对应文件的相应位置上。通过本发明解决了现有技术中存在的不能充分利用上行带宽上传文件的问题。本发明同时公开了一种上传文件的系统。
Description
技术领域
本发明涉及网络传输技术,特别涉及一种上传文件的方法和系统。
背景技术
随着互联网的迅速发展,网路上的各种资源越来越多,大量的用户通过互联网下载自己需要的资源,很多用户也将自己的资源上传到网上,供其他用户下载。
目前,用户从服务器在下载文件时,服务器支持多个任务同时下载。具体是这样实现的:服务器根据设定的分块数将文件分成多个数据块,在数据块中添加数据信息将文件的每个数据块同时发送给客户端;客户端在收到数据块后,根据数据块的数据信息合成文件进行保存。这样能够加快用户下载文件的速度。
但是在上传文件时,只能单个任务进行上传,不能充分利用上行带宽的资源。如果上传的文件容量比较小,不会对用户造成影响;如果上传的文件容量比较大,因为不能充分利用上行带宽的资源,从而降低了上传的效率,增加了上传的时间。进行单任务上传时,对于带宽越大的用户,上行带宽资源的利用率越低。
综上所述,现有上传文件的方法,不能充分利用上行带宽的资源,从而降低了上传文件的速度和上行带宽的利用率,增加了上传文件的时间。
发明内容
本发明的目的是提供一种上传文件的方法和系统,用以解决现有技术中存在的上行带宽利用率低的问题。
本发明提供的一种上传文件的方法包括:
A、客户端将需要上传的文件分成数据块,在每个数据块中添加数据信息,所述数据信息包括:文件标识、数据块的位置信息和文件容量;
B、所述客户端将该文件添加数据信息的数据块发送给服务器,且至少同时发送该文件的两个数据块;
C、所述服务器接收到数据块后,根据所述数据信息中的文件标识查看是否保存有所述文件标识对应的文件,如果没有,则根据所收到数据块中数据信息中的文件标识建立一个相同标识的文件,并在文件标识后增加后缀标记,服务器将收到的数据块保存到新建文件中;如果有,则服务器根据数据块中数据信息中的位置信息将收到的数据块保存到对应文件的相应位置上,最终组成文件。
所述客户端按照用户设置的上传文件要分成数据块的数量,或根据网络带宽信息确定数据块的数量,将需要上传的文件分成数据块。
步骤A之前包括:
所述客户端判断用户是否设置上传文件要分成数据块的数量,如果是,则按照该数量将需要上传的文件分成数据块,否则,根据网络带宽信息将需要上传的文件分成数据块。
在步骤C之后,该方法还进一步包括:服务器查看组成的该文件的容量,当该文件的容量等于所述数据信息中文件的容量时,确认该文件组装完成。
本发明提供的一种上传文件的系统,该系统包括:
客户端,用于将需要上传的文件分成数据块,在每个数据块中添加数据信息,并将该文件添加数据信息的数据块发送给服务器,且至少同时发送该文件的两个数据块,其中所述数据信息包括:文件标识、数据块的位置信息和文件容量;
服务器,用于接收到数据块后,根据所述数据信息中的文件标识查看是否保存有所述文件标识对应的文件,没有则根据所收到数据块中数据信息中的文件标识建立一个相同标识的文件,并在文件标识后增加后缀标记,将收到的数据块保存到新建文件中;有则根据数据块中数据信息中的位置信息将收到的数据块保存到对应文件的相应位置上,最终组成文件。
所述客户端,用于按照用户设置的上传文件要分成数据块的数量,或根据来自带宽速率模块的网络带宽信息确定数据块的数量,将需要上传的文件分成数据块。
所述客户端包括:
判断模块,用于用于判断用户是否设置上传文件要分成数据块的数量,如果是,则将用户设置的数量发送给分配模块,否则,根据来自带宽速率模块的网络带宽信息确定数据块的数量,并将该数量发送给分配模块;
分配模块,用于按照收到的数量将需要上传的文件分成数据块;
发送模块,用于将该文件的数据块发送给服务器,并且,至少同时发送该文件的两个数据块。
所述判断模块进一步用于:
在确定用户没有设置上传文件要分成数据块的数量时,根据来自带宽速率模块的网络带宽信息确定数据块的数量,并将该数量发送给分配模块。
所述客户端还进一步包括:信息设置模块,用于在所述发送模块向所述服务器发送的数据块中添加数据信息,所述数据信息包括文件标识和数据块的位置信息;
则所述服务器包括:
接收模块,用于接收数据块;
处理模块,用于根据接收到的数据块中的文件标识和数据块的位置信息将该数据块保存在对应文件的相应位置上。
所述数据信息还可以包括:文件容量,则所述服务器还可以包括:
验证模块,用于查看所述文件的容量,当该文件的容量等于所述数据信息中文件的容量时,确认该文件组装完成。
本发明客户端将需要上传的文件分成数据块,在数据块中添加数据信息,将至少两个数据块同时发送给服务器;服务器根据收到的数据块中的数据信息将该数据块保存到对应文件的相应位置上,组成完整的文件进行保存,从而提高了上传文件的速度和上行带宽的利用率。客户端还可以根据网络带宽信息自动将需要上传的文件分成数据块,从而充分利用上行带宽上传文件;或者根据用户设置的上传文件要分成数据块的数量将需要上传的文件分成数据块,从而满足不同用户的要求。
附图说明
图1为本发明系统组成的连接框图;
图2A为本发明客户端组成的结构示意图;
图2B为本发明服务器组成的结构示意图;
图3为实现本发明上传文件方法的流程示意图;
图4为本发明实施例的流程示意图。
具体实施方式
针对现有技术中存在的上传文件时,上行带宽利用率低的问题,本发明通过客户端将文件分成一个以上的数据块,将每个数据块同时发送给服务器,从而解决了上述问题。
图1为本发明系统组成的结构框图。如图1所示,本发明上传文件系统包括:客户端10和服务器20。
客户端10,与服务器20和带宽速率模块30连接,用于将需要上传的文件分成数据块,并将该文件的数据块发送给服务器20,并且,至少同时发送该文件的两个数据块。
服务器20,用于将接收到的客户端10发送的数据块组成文件。
数据信息至少包括:文件标识、数据块的位置信息和文件容量。
客户端10按照用户设置的上传文件要分成数据块的数量,或根据来自带宽速率模块30的网络带宽信息确定数据块的数量,将需要上传的文件分成数据块。
如果用户没有设置分成数据块的数量或者客户端10不能根据用户的设置得到数据块的数量,则客户端10通过来自带宽速率模块30的网络带宽信息,确定数据块的数量。
网络带宽信息可以是:网络带宽的速率、类型等等。
客户端10根据网络带宽信息确定数据块的数量,比如:网络带宽信息是网络带宽速率,则将网络带宽速率除以100,将数值取整后,得到数据块的数量;或者将网络带宽设定多个范围,不同的范围对应不同的数据块数量。
客户端10按照该数量将需要上传的文件分成数据块:可以平均分数据块,也可以随机分数据块。
图2A为本发明客户端组成的结构示意图。如图2A所示,本发明客户端10包括:判断模块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+1),文件的最后一个数据块的位置编号为[n,n+2)。
其中,n代表数据块最前端在文件中的位置,n+1代表该数据块末端在文件中的位置。比如:如果一个数据块在文件最前端,则n值为0,第一个数据块的位置编号为[0,1),0就代表该数据块最前端在文件中的位置,0+1就代表该数据块末端在文件中的位置,第二个数据块的n值就为1,位置编号为[1,2),如果第二个数据块是最后一个数据块,则位置编号为[1,3)。
客户端将数据信息放到数据块中,从文件的n位置开始发送数据,到文件的n+1位置停止发送数据,并且不发送n+1位置上的数据,因为文件的最后一个数据块的位置编号为[n,n+2),实际上n+1位置就是文件的最后一个数据,客户端将文件最后一个数据块n+1处的数据发送后,停止发送数据。这样就能保证将文件的每一个数据完整的发送给服务器。
图4为本发明实施例的流程示意图。如图4所示,本发明实施例包括下列步骤:
步骤400、客户端判断用户是否设置上传文件要分成数据块的数量,如果是,则执行步骤401;否则,执行步骤402。
步骤401、客户端按照用户设置的上传文件要分成数据块的数量,将需要上传的文件分成数据块,执行步骤403。
步骤402、客户端根据网络带宽信息,将需要上传的文件平均分成数据块。
步骤403、客户端根据每个数据块在文件中的位置进行编号。
步骤404、客户端将数据信息分别保存到每个数据块中。
步骤405、客户端将所有数据块同时发送给服务器。
步骤406、服务器收到数据块后,根据数据信息中的文件标识查看是否保存有该文件标识对应的文件,如果有,则执行步骤409;否则,执行步骤407。
步骤407、服务器根据收到的数据块中的数据信息中的文件标识,建立一个相同标识的文件,并在文件标识后增加后缀标记
步骤408、服务器将数据块保存到新建的文件中,执行步骤410。
步骤409、服务器根据数据信息中的位置信息,将收到数据块保存到文件名对应的位置上。
步骤410、服务器保存数据块中的数据信息,根据数据信息中的文件标识找到对应的文件,并查看对应文件的容量,在文件的容量等于数据信息中文件的容量时,删除该文件的所有数据信息和该文件标识的后缀标记。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种上传文件的方法,其特征在于,该方法包括:
A、客户端将需要上传的文件分成数据块,在每个数据块中添加数据信息,所述数据信息包括:文件标识、数据块的位置信息和文件容量;
B、所述客户端将该文件添加数据信息的数据块发送给服务器,且至少同时发送该文件的两个数据块;
C、所述服务器接收到数据块后,根据所述数据信息中的文件标识查看是否保存有所述文件标识对应的文件,如果没有,则根据所收到数据块中数据信息中的文件标识建立一个相同标识的文件,并在文件标识后增加后缀标记,服务器将收到的数据块保存到新建文件中;如果有,则服务器根据数据块中数据信息中的位置信息将收到的数据块保存到对应文件的相应位置上,最终组成文件。
2.如权利要求1所述上传文件的方法,其特征在于,所述客户端按照用户设置的上传文件要分成数据块的数量,或根据网络带宽信息确定数据块的数量,将需要上传的文件分成数据块。
3.如权利要求1所述上传文件的方法,其特征在于,步骤A之前包括:
所述客户端判断用户是否设置上传文件要分成数据块的数量,如果是,则按照该数量将需要上传的文件分成数据块,否则,根据网络带宽信息将需要上传的文件分成数据块。
4.如权利要求1所述上传文件的方法,其特征在于,在步骤C之后,该方法还进一步包括:
服务器查看组成的该文件的容量,当该文件的容量等于所述数据信息中文件的容量时,确认该文件组装完成。
5.一种上传文件的系统,其特征在于,该系统包括:
客户端,用于将需要上传的文件分成数据块,在每个数据块中添加数据信息,并将该文件添加数据信息的数据块发送给服务器,且至少同时发送该文件的两个数据块,其中所述数据信息包括:文件标识、数据块的位置信息和文件容量;
服务器,用于接收到数据块后,根据所述数据信息中的文件标识查看是否保存有所述文件标识对应的文件,没有则根据所收到数据块中数据信息中的文件标识建立一个相同标识的文件,并在文件标识后增加后缀标记,将收到的数据块保存到新建文件中;有则根据数据块中数据信息中的位置信息将收到的数据块保存到对应文件的相应位置上,最终组成文件。
6.如权利要求5所述上传文件的系统,其特征在于,所述客户端,用于按照用户设置的上传文件要分成数据块的数量,或根据来自带宽速率模块的网络带宽信息确定数据块的数量,将需要上传的文件分成数据块。
7.如权利要求5所述上传文件的系统,其特征在于,所述客户端包括:
判断模块,用于判断用户是否设置上传文件要分成数据块的数量,如果是,则将用户设置的数量发送给分配模块,否则,根据来自带宽速率模块的网络带宽信息确定数据块的数量,并将该数量发送给分配模块;
分配模块,用于按照收到的数量将需要上传的文件分成数据块;
发送模块,用于将该文件的数据块发送给服务器,并且,至少同时发送该文件的两个数据块。
8.如权利要求7所述上传文件的系统,其特征在于,所述客户端还用于在所述发送模块向所述服务器发送的数据块中添加数据信息,所述数据信息包括文件标识和数据块的位置信息;
则所述服务器包括:
接收模块,用于接收数据块;
处理模块,用于根据接收到的数据块中的文件标识和数据块的位置信息将该数据块保存在对应文件的相应位置上。
9.如权利要求8所述上传文件的系统,其特征在于,所述数据信息还包括:文件容量,则所述服务器还包括:
验证模块,用于查看所述文件的容量,当该文件的容量等于所述数据信息中文件的容量时,确认该文件组装完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610165822A CN101179392B (zh) | 2006-12-12 | 2006-12-12 | 一种上传文件的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610165822A CN101179392B (zh) | 2006-12-12 | 2006-12-12 | 一种上传文件的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101179392A CN101179392A (zh) | 2008-05-14 |
CN101179392B true CN101179392B (zh) | 2012-08-29 |
Family
ID=39405492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610165822A Active CN101179392B (zh) | 2006-12-12 | 2006-12-12 | 一种上传文件的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101179392B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750159B (zh) * | 2011-04-21 | 2017-08-25 | 中国银联股份有限公司 | 一种用于文件装载的方法和装置 |
CN102694877A (zh) * | 2012-05-14 | 2012-09-26 | 中国科学院计算机网络信息中心 | 区文件签名控制方法、装置及区文件签名系统 |
CN103685343B (zh) * | 2012-09-03 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 文件传输方法和系统 |
CN103780633B (zh) * | 2012-10-17 | 2018-05-22 | 腾讯科技(深圳)有限公司 | 移动终端、网络服务器上传文件的方法和装置 |
CN104301438A (zh) * | 2014-07-25 | 2015-01-21 | 武汉传神信息技术有限公司 | 一种上传文件的方法 |
CN106330498B (zh) * | 2015-06-25 | 2019-08-27 | 华为技术有限公司 | 远程数据获取方法及装置 |
CN105872036A (zh) * | 2016-03-28 | 2016-08-17 | 联想(北京)有限公司 | 一种数据上传、下载方法、电子设备及服务器 |
CN106412317A (zh) * | 2016-10-31 | 2017-02-15 | 努比亚技术有限公司 | 文件分享装置及方法 |
CN109525542A (zh) * | 2017-09-20 | 2019-03-26 | 中兴通讯股份有限公司 | 数据恢复方法、发送/接收装置和计算机可读存储介质 |
CN109272602B (zh) * | 2018-08-29 | 2021-12-28 | 百度在线网络技术(北京)有限公司 | 无人车数据的录制方法、装置、设备和存储介质 |
CN112527750A (zh) * | 2020-12-15 | 2021-03-19 | 中孚安全技术有限公司 | 一种国产操作系统文件存储方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1228221A (zh) * | 1997-05-13 | 1999-09-08 | 松下电器产业株式会社 | 分组传输装置 |
US20030208693A1 (en) * | 2002-05-02 | 2003-11-06 | Fuji Xerox Co., Ltd. | Method and system for transferring data |
CN1695377A (zh) * | 2002-11-14 | 2005-11-09 | 松下电器产业株式会社 | 传输数据结构以及发送该传输数据结构的方法与设备 |
CN1852075A (zh) * | 2005-12-02 | 2006-10-25 | 华为技术有限公司 | 一种数据重传的方法及装置 |
-
2006
- 2006-12-12 CN CN200610165822A patent/CN101179392B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1228221A (zh) * | 1997-05-13 | 1999-09-08 | 松下电器产业株式会社 | 分组传输装置 |
US20030208693A1 (en) * | 2002-05-02 | 2003-11-06 | Fuji Xerox Co., Ltd. | Method and system for transferring data |
CN1695377A (zh) * | 2002-11-14 | 2005-11-09 | 松下电器产业株式会社 | 传输数据结构以及发送该传输数据结构的方法与设备 |
CN1852075A (zh) * | 2005-12-02 | 2006-10-25 | 华为技术有限公司 | 一种数据重传的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101179392A (zh) | 2008-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101179392B (zh) | 一种上传文件的方法和系统 | |
CN109492436A (zh) | 一种文件校验方法及相关装置 | |
CN103475682B (zh) | 文件迁移方法及设备 | |
CN103678319B (zh) | 资源文件更新方法、装置和系统及服务器 | |
CN104935640B (zh) | 一种p2p加速的内容分发网络系统及方法 | |
CN104468843A (zh) | 一种文件上传方法及装置 | |
CN107483627A (zh) | 一种文件分发、下载方法、分发服务器、客户端及系统 | |
CN106453576B (zh) | 一种基于混合云平台的交互方法、系统及调度中心 | |
CN108933805A (zh) | 一种文件传输方法及系统 | |
CN110430274A (zh) | 一种基于云存储的文件下载方法及系统 | |
CN101075990B (zh) | 即时通讯软件的发布方法、即时通讯服务器 | |
CN103248645A (zh) | Bt离线数据下载系统及方法 | |
CN106657383A (zh) | 数据下载方法及相关设备 | |
CN110661829B (zh) | 文件下载方法及装置、客户端和计算机可读存储介质 | |
CN109951514A (zh) | 基于云存储的文件处理方法、系统及计算机设备 | |
CN101626397A (zh) | 基于Bittorrent协议下载文件的系统 | |
CN111694644A (zh) | 基于机器人操作系统的消息处理方法、装置及计算机设备 | |
CN105871966A (zh) | 消息分发的方法、装置及系统 | |
CN101515945B (zh) | 一种p2p资源文件的在线应用方法和系统 | |
CN102014145A (zh) | 文件传输安全管控系统及方法 | |
CN111984733A (zh) | 基于区块链的数据传输方法、装置及存储介质 | |
CN104270362A (zh) | 请求处理方法和装置 | |
CN105450513B (zh) | 归档邮件附件的方法和云存储服务器 | |
CN111083204A (zh) | 文件传输方法、装置及存储介质 | |
CN104850431B (zh) | 基于fota升级的稳定处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151228 Address after: The South Road in Guangdong province Shenzhen city Fiyta building 518057 floor 5-10 Nanshan District high tech Zone Patentee after: Shenzhen Tencent Computer System Co., Ltd. Address before: 2, 518044, East 410 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |