CN102790806B - 一种基于http协议下载课件的方法及装置 - Google Patents
一种基于http协议下载课件的方法及装置 Download PDFInfo
- Publication number
- CN102790806B CN102790806B CN201210294519.6A CN201210294519A CN102790806B CN 102790806 B CN102790806 B CN 102790806B CN 201210294519 A CN201210294519 A CN 201210294519A CN 102790806 B CN102790806 B CN 102790806B
- Authority
- CN
- China
- Prior art keywords
- file
- downloaded
- path
- level path
- courseware
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种基于http协议下载课件的方法及装置,其方法包括:判断是否存在列表文件;列表文件包括课件的所有文件相对路径;创建记录文件,获取列表文件的信息并写入记录文件中,并下载列表文件;设定指向标志P并赋初值P=1;读取列表文件的指向标志P所指向的内容;判断指向标志P所指向的内容是否为空,并在内容不为空时获取指向标志P所指向的当前待下载文件名,并将当前待下载文件的信息写入记录文件中;依据记录文件中的信息将当前待下载文件下载到指定位置;指向标志P自加1;结束本次课件下载。实施本发明的基于http协议下载课件的方法及装置,具有以下有益效果:效率较高、简单快速、支持具有特定目录结构的课件下载。
Description
技术领域
本发明涉及互联网领域,更具体地说,涉及一种基于http协议下载课件的方法及装置。
背景技术
随着互联网的应用越来越普及,互联网已成为人们生活和工作中不可缺少的一部分,且在应用互联网经常会遇到要下载文件或文件夹的情况,但目前互联网上的下载工具基本上都是单文件下载,对于文件夹不能直接下载,一般只有对文件夹进行相应处理后才能下载,例如:对文件夹进行压缩后才可以进行下载,目前,还没有任何可以对文件夹直接进行下载的下载工具。而且传统意义上的下载工具在对文件进行下载时,检索一个文件可能包含繁复的交换步骤,其速度较慢且效率低下。传统意义的下载工具对文件夹不能直接进行下载,对于在特定环境下的文件夹,例如:对于其里面的文件具有特定的目录结构,比如其里面既有文件夹又有文件,而且文件数量变化的课件来讲,传统意义上的下载工具也是不能进行下载的。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述效率较低、繁复慢速、不支持文件夹下载的缺陷,提供一种效率较高、简单快速、支持具有特定目录结构的课件下载的基于http协议(超文本传送协议)下载课件的方法及装置。
本发明解决其技术问题所采用的技术方案是:构造一种基于http协议下载课件的方法,包括如下步骤:
B)判断是否存在列表文件,如是,执行步骤D);否则,执行步骤C);所述列表文件包括所述课件的所有文件相对路径;
C)创建记录文件,获取所述列表文件的信息并将所述列表文件的信息写入记录文件中,并下载所述列表文件;
D)设定指向标志P并赋初值P=1;
E)读取所述列表文件的指向标志P所指向的内容;
F)判断所述指向标志P所指向的内容是否为空,如是,执行步骤I);否则,获取指向标志P所指向的当前待下载文件名,并将所述当前待下载文件的信息写入所述记录文件中,执行步骤G);
G)依据所述记录文件中的信息将所述当前待下载文件下载到指定位置;
H)所述指向标志P自加1,返回步骤E);
I)结束本次课件下载。
在本发明所述的基于http协议下载课件的方法中,在所述步骤B)之前还包括:
A)判断是否存在记录文件,如是,执行步骤G);否则,执行步骤B)。
在本发明所述的基于http协议下载课件的方法中,所述步骤G)进一步包括:
G1)读取所述当前待下载文件的相对路径,所述相对路径包括T级路径;
G2)设定中间变量K并赋初值K=1;
G3)读取第K级路径,并判断用于存放下载课件的位置是否存在其名称为所述第K级路径所指定名称的文件夹,如是,执行步骤G4);否则,在第K-1级路径所指定名称的文件夹中创建其名称为所述第K级路径指定名称的文件夹,并执行步骤G4);
G4)K自加1,并判断K是否大于T-1,如是,执行步骤G5);否则,返回步骤G3);
G5)将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
在本发明所述的基于http协议下载课件的方法中,所述步骤G)进一步包括:
G1’)读取所述当前待下载文件的相对路径,所述相对路径包括T级路径;
G2’)设定中间变量K并赋初值K=1;
G3’)判断所述当前待下载文件的第K级路径与所述指向标志P所指向的前一待下载文件的第K级路径是否相同,如是,执行步骤G4’);否则,执行步骤G5’);
G4’)K自加1,并判断K是否大于T-1,如是,执行步骤G7’);否则,返回步骤G3’);
G5’)判断K是否大于T-1,如是,执行步骤G7’);否则,在第K-1级路径所指定名称的文件夹中创建其名称为所述第K级路径指定名称的文件夹,执行步骤G6’);
G6’)K自加1,返回步骤G5’);
G7’)将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
在本发明所述的基于http协议下载课件的方法中,所述待下载文件包括多个块,在下载时按块进行下载。
在本发明所述的基于http协议下载课件的方法中,所述记录文件包括已下载文件或待下载文件的块编号或/和文件大小或/和文件名或/和IP地址或/和相对路径。
本发明还涉及一种实现上述基于http协议下载课件的方法的装置,包括:
列表文件判断模块:用于判断是否存在列表文件;所述列表文件包括所述课件的所有文件相对路径;
文件创建及下载模块:用于创建记录文件,获取所述列表文件的信息并将所述列表文件的信息写入记录文件中,并下载所述列表文件;
指向标志设定及赋初值模块:用于设定指向标志P并赋初值P=1;
指向标志读取模块:用于读取所述列表文件的指向标志P所指向的内容;
指向标志判断模块:用于判断所述指向标志P所指向的内容是否为空,并在内容不为空时获取指向标志P所指向的当前待下载文件名,并将所述当前待下载文件的信息写入所述记录文件中;
当前文件下载模块:用于依据所述记录文件中的信息将所述当前待下载文件下载到指定位置;
指向标志自加模块:用于使所述指向标志P自加1并返回;
下载结束模块:用于结束本次课件下载。
在本发明所述的实现上述基于http协议下载课件的方法的装置中,还包括:
记录文件判断模块:用于判断是否存在记录文件,如是,依据所述记录文件中的信息将所述当前待下载文件下载到指定位置。
在本发明所述的实现上述基于http协议下载课件的方法的装置中,所述当前文件下载模块进一步包括:
相对路径读取单元:用于读取所述当前待下载文件的相对路径,所述相对路径包括T级路径;
中间变量设定及赋初值单元:用于设定中间变量K并赋初值K=1;
路径读取及文件夹判断单元:用于读取第K级路径,并判断用于存放下载课件的位置是否存在其名称为所述第K级路径所指定名称的文件夹,并在未存在时在第K-1级路径所指定名称的文件夹中创建其名称为所述第K级路径指定名称的文件夹;
自加及判断单元:用于使K自加1,并判断K是否大于T-1;
T级文件下载单元:用于将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
在本发明所述的实现上述基于http协议下载课件的方法的装置中,所述当前文件下载模块进一步包括:
相对路径读取单元:用于读取所述当前待下载文件的相对路径,所述相对路径包括T级路径;
中间变量设定及赋初值单元:用于设定中间变量K并赋初值K=1;
K级路径判断单元:用于判断所述当前待下载文件的第K级路径与所述指向标志P所指向的前一待下载文件的第K级路径是否相同;
自加及判断单元:用于使K自加1,并判断K是否大于T-1;
K值判断单元:用于判断K是否大于T-1,并在K不大于T-1时在第K-1级路径所指定名称的文件夹中创建其名称为所述第K级路径指定名称的文件夹;
自加及返回单元:用于使K自加1并返回;
T级文件下载单元:用于将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
实施本发明的基于http协议下载课件的方法及装置,具有以下有益效果:由于基于http协议下载,所以其效率较高、简单快速;由于通过用列表文件记录课件中各文件的相对路径,在下载课件时,通过读取指向标志P所指向的文件的相对路径,依据上述相对路径,首先判断是否存在第一级路径所指定名称的文件夹,如果不存在,则创建指定名称的文件夹,依次判断是否存在后面各级路径所指定的文件夹,如果不存在,则在上一级路径指定的文件夹中创建本级路径指定名称的文件夹,到最后一级路径时,将文件下载到上一级路径指定的文件夹中,所以其支持具有特定目录结构的课件下载。
附图说明
图1是本发明基于http协议下载课件的方法及装置实施例中方法的流程图;
图2是所述实施例中依据记录文件中的信息将当前待下载文件下载到指定位置在一种情况下的流程图;
图3是所述实施例中依据记录文件中的信息将当前待下载文件下载到指定位置在另一种情况下的流程图;
图4 是所述实施例中实现上述基于http协议下载课件的方法的装置的结构示意图;
图5 是所述实施例中当前文件下载模块在一种情况下的结构示意图;
图6是所述实施例中当前文件下载模块在另一种情况下的结构示意图。
具体实施方式
为了便于本领域的普通技术人员能够理解并实施本发明,下面将结合附图对本发明实施例作进一步说明。
在本发明基于http协议下载课件的方法及装置实施例中,其方法的流程图如图1所示,该方法包括如下步骤:
步骤S100 判断是否存在记录文件? 本实施例中,记录文件用来记录已下载文件或待下载文件的信息,该信息为块编号或/和文件大小或/和文件名或/和IP(Internet
Protocol,网络之间互连的协议,简称网协)地址或/和相对路径信息,这里,将单个文件按一定大小分成多个块(也即根据单个文件的大小,将单个文件分成多个块数据),对每个块(块数据)进行编号,每次下载完一块就将上述块编号或/和文件大小或/和文件名或/和IP地址或/和相对路径记录在上述记录文件中,记录文件中记录的块编号为单个文件在上次下载时暂停下载的位置,暂停下载的位置所在的块编号记录在上述记录文件中,这样在下次下载时不必再重新进行下载,继续从该块编号所在位置开始下载,从而支持断点续传,节省了时间和资源,提高下载效率。本步骤中,如果判断的结果为是,即存在记录文件,说明在本次下载前已进行下载过,且下载文件的信息记录在记录文件中;如果判断的结果为否,即不存在记录文件,则说明之前未进行下载过。本步骤中,如果判断的结果为是,执行步骤S107;如果判断的结果为否,执行步骤S101。值得一提的是,在进行本步骤之前,首先要进行初始化,一切准备就绪并开始工作。在本实施例的另外一些情况下,也可以不执行本步骤,这时,如果下载的文件一次没有下载完,等下次下载时要重新开始下载,这种情况虽然不支持断点续传,但因为不需要进行本步骤的判断,节省了判断是否存在记录文件所使用的时间和开销,所以节省了系统的开支。
步骤S101 判断是否存在列表文件? 本实施例中,课件是 Beyonsys(多媒体录播系统)平台下的基于scom(国际标准化课件)标准的课件,其里面的文件有特定的目录结构,其文件数量也是变化的,也就是说课件是具有一定层次关系的课件,其里面既有文件夹也有文件。Beyonsys™(多媒体录播系统)平台采用B/S(Browser/Server,浏览器/服务器模式)架构设计,主要应用于教育行业录播。该平台结合了微软Silverlight®(银光)平台技术,可以跨平台、跨浏览器访问,支持目前所有流行的浏览器,包括Microsoft
Internet Explorer(微软因特网浏览器)、Mozilla Firefox(火狐浏览器)、Apple Safari(苹果浏览器)和Opera(欧朋手机浏览器),同样可以通过Microsoft Windows(微软视窗)和Apple Mac OS X(苹果麦金塔第十代操作系统)平台访问。本实施例中,对于生成的课件,服务器会将该课件里所有的文件名及文件相对路径记录到一个列表文件中,值得一提的是,上述列表文件为课件中必不可少的文件,列表文件包括上述课件的所有文件相对路径。本实施例中,将上述列表文件命名为FileList.xml,当然,上述列表文件也可以为其他名称。下载前会先将课件存放的机器IP地址及列表文件名拼成一个URL(Uniform / Universal Resource Locator,统一资源定位符),也称为网页地址。本步骤中,如果判断的结果为是,执行步骤S103;如果判断的结果为否,执行步骤S102。
步骤S102 创建记录文件,将列表文件信息写入记录文件中,并下载列表文件:如果上述步骤S101的判断结果为否,则执行本步骤。本步骤中,创建上述记录文件,获取上述列表文件的信息(该信息为块编号或/和文件大小或/和文件名或/和IP地址或/和相对路径),并将列表文件的信息写入记录文件中,并按照IP地址及相对路径下载列表文件到指定位置。值得一提的是,在下载课件中的具体文件之前,首先将列表文件进行下载,然后对列表文件中记录的文件进行一一下载 。本实施例中,将上述记录文件命名为record.szr,当然,上述记录文件也可以为其他名称。执行完本步骤,继续执行步骤S103。
步骤S103 设定指向标志P并赋初值P=1:本步骤中,设定指向标志P用来指向列表文件中的所记录的课件中各文件的相对路径,对指向标志P赋初值P=1,即使指向标志P指向列表文件第一个文件的相对路径。
步骤S104 读取列表文件的指向标志P所指向的内容:本步骤中,在文件下载之前,首先读取列表文件的指向标志P所指向的内容,也即根据指向标志P的当前值可获取指向标志P所指向的文件的相对路径。
步骤S105 判断上述指向标志P所指向的内容是否为空? 本步骤中,如果指向标志P所指向的内容为空,也即指向标志P不指向任何相对路径;说明这时课件已下载完成。本步骤中,如果判断的结果为是,执行步骤S109;如果判断的结果为否,执行步骤S106。
步骤S106 获取指向标志P所指向的当前待下载文件名,并将上述当前待下载文件的信息写入上述记录文件中:如果上述步骤S105的判断结果为否,则执行本步骤。本步骤中,获取指向标志P所指向的当前待下载文件名(即指向标志P所指向的相对路径中记载的文件名),并将当前待下载文件的信息(即上述的块编号或/和文件大小或/和文件名或/和IP地址或/和相对路径)写入记录文件中。值得一提的是,本实施例中,待下载文件包括多个块,也即对单个文件进行了分块,在下载时按块进行下载。
步骤S107 依据上述记录文件中的信息将上述当前待下载文件下载到指定位置:上述记录文件中记录着当前待下载文件的信息,依据其中的相对路径信息,将上述当前待下载文件下载到指定位置,这个指定位置是相对路径中指定的位置。关于本步骤中如何具体的依据记录文件中的信息将当前待下载文件下载到指定位置,请参见图2和图3,稍后也会加以描述。
步骤S108 上述指向标志P自加1:本实施例中,当下载完一个文件,上述指向标志P自加1,指向下一文件的相对路径。值得一提的是,执行完本步骤,返回步骤S104。
步骤S109 结束本次课件下载:当上述步骤S105的判断结果为是时,即当上述指向标志P所指向的内容为空时,执行本步骤,结束本次课件下载。
对于本实施例而言,上述依据记录文件中的信息将当前待下载文件下载到指定位置的步骤具体如图2所示,其包括:
步骤S701 读取上述当前待下载文件的相对路径,上述相对路径包括T级路径:本步骤中,读取上述当前待下载文件的相对路径,也即读取当前指向标志P所指向的相对路径,上述相对路径包括T级路径;当下载当前待下载文件时,是按照相对路径进行下载的。将课件下载到本地哪个位置由用户来设定或系统预先设定,一旦选择了课件所存放的本地位置,例如:D盘;将D盘打开后,将文件按照上述相对路径进行下载。
步骤S702 设定中间变量K并赋初值K=1:本步骤中,设定一个中间变量K,并对K赋初值K=1。
步骤S703 读取第K级路径,并判断是否存在其名称为上述第K级路径所指定名称的文件夹? 本步骤中,读取第K级路径,并判断用于存放下载课件的位置(例如:本地D盘)是否存在其名称为上述第K级路径所指定名称的文件夹,如果判断的结果为是,执行步骤S705;如果判断的结果为否,执行步骤S704。
步骤S704 在第K-1级路径所指定名称的文件夹中创建其名称为上述第K级路径指定名称的文件夹:如果上述步骤S703的判断结果为否,即不存在其名称为第K级路径所指定名称的文件夹,则执行本步骤,在第K-1级路径所指定名称的文件夹中创建其名称为上述第K级路径指定名称的文件夹。
步骤S705 K自加1,并判断K是否大于T-1? 本步骤中,K自加1,并判断K是否大于T-1,由于上述相对路径包括T级路径,第T-1级路径为文件夹路径,第T级路径为文件路径,本步骤判断K否大于T-1是为了区分第K级路径是文件夹路径还是文件路径,在K大于T-1时,即K等于T时,直接下载文件。本步骤中,如果判断的结果为是,执行步骤S706;如果判断的结果为否,返回步骤S703。
步骤S706 将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中:如果上述步骤S705的判断结果为是,则执行本步骤;本步骤中,直接将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
在本实施例的另外一些情况下,上述依据记录文件中的信息将当前待下载文件下载到指定位置的步骤还可以用别的方式实现,其具体流程图如图3所示,图3中,上述依据记录文件中的信息将当前待下载文件下载到指定位置包括如下步骤:
步骤S701’ 读取上述当前待下载文件的相对路径,上述相对路径包括T级路径:本步骤中,读取上述当前待下载文件的相对路径,也即读取当前指向标志P所指向的相对路径,上述相对路径包括T级路径;当下载当前待下载文件时,是按照相对路径进行下载的。将课件下载到本地哪个位置由用户来设定或系统预先设定,一旦选择了课件所存放的本地位置,例如:本地D盘;将本地D盘打开后,将文件按照上述相对路径进行下载。
步骤S702’ 设定中间变量K并赋初值K=1:本步骤中,设定一个中间变量K,并对K赋初值K=1。
步骤S703’ 判断上述当前待下载文件的第K级路径与上述指向标志P所指向的前一待下载文件的第K级路径是否相同? 本步骤中,判断上述当前待下载文件的第K级路径与上述指向标志P所指向的前一待下载文件的第K级路径是否相同,其实就是判断本次下载的文件与上次下载的文件的相对路径是否有相同的部分,如果有相同的部分,说明本地存放课件的位置已存在相同的部分,即下载前一文件时,已经创建了其相对路径相同部分的文件夹,在本次下载文件时,只需从相对路径不同的部分开始进行判断或下载。本步骤中,如果判断的结果为是,执行步骤S704’; 如果判断的结果为否,执行步骤S705’。
步骤S704’ K自加1,并判断K是否大于T-1? 如果上述步骤S703’的判断结果为是,则执行本步骤。本步骤中,K自加1,并判断K是否大于T-1,由于上述相对路径包括T级路径,第T-1级路径为文件夹路径,第T级路径为文件路径,本步骤判断K否大于T-1是为了区分第K级路径是文件夹路径还是文件路径,在K大于T-1时,即K等于T时,直接下载文件。本步骤中,如果判断的结果为是,执行步骤S708’;如果判断的结果为否,返回步骤S703’。
步骤S705’ 判断K是否大于T-1? 本步骤中,判断K是否大于T-1,由于上述相对路径包括T级路径,第T-1级路径为文件夹路径,第T级路径为文件路径,本步骤判断K否大于T-1是为了区分第K级路径是文件夹路径还是文件路径,在K大于T-1时,即K等于T时,直接下载文件。本步骤中,如果判断的结果为是,执行步骤S708’;如果判断的结果为否,执行步骤S706’。
步骤S706’ 在第K-1级路径所指定名称的文件夹中创建其名称为上述第K级路径指定名称的文件夹:如果上述步骤S705’的判断结果为否,则执行本步骤;本步骤中,将第K-1级路径所指定名称的文件夹打开,并在其里面创建其名称为第K级路径指定名称的文件夹,即第K级路径指定名称的文件夹在第K-1级路径所指定名称的文件夹中。执行完本步骤,执行步骤S707’。
步骤S707’ K自加1:本步骤中,K自加1,执行完本步骤,返回步骤S705’。
步骤S708’ 将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中:如果上述步骤S704’或S705’的判断结果为是,则执行本步骤;本步骤中,直接将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
值得一提的是,本实施例中,在下载文件时,可将单个文件按一定大小分成多块(多个块数据),通过发送http协议的head(头)请求和get(上传)请求来向服务器请求所需下载的文件的具体数据,其中,head向服务器索要与get请求相一致的响应,只不过响应体将不会被返回,这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息;get向特定的资源发出请求。就本实施例的情况而言,head请求是向服务器请求所需数据量的大小, get请求是对head所请求的数据量进行分多次下载,用于向服务器获取每次下载数据量的大小;在请求数据时可以请求某一块的数据,每次下载完一块就将块编号或/和文件大小或/和文件名或/和IP地址或/和相对路径信息记录到记录文件中,这样就可以使下载过程中暂停下载,下次下载时继续从此位置开始下载,从而支持了断点续传。值得一提的是,将单个文件按一定大小分成多块时,按块进行下载时,也可以不暂停下载,一次性将单个文件下载完。当然,根据具体文件的大小,例如当文件较小时,也可以对文件不进行分块,一次性将单个文件下载完。
本实施例还涉及一种实现上述基于http协议下载课件的方法的装置,其结构示意图如图4所示,该装置包括记录文件判断模块1、列表文件判断模块2、文件创建及下载模块3、指向标志设定及赋初值模块4、指向标志读取模块5、指向标志判断模块6、当前文件下载模块7、指向标志自加模块8和下载结束模块9;其中,记录文件判断模块1用于判断是否存在记录文件,如是,依据记录文件中的信息将当前待下载文件下载到指定位置;列表文件判断模块2用于判断是否存在列表文件;上述列表文件包括课件的所有文件相对路径;文件创建及下载模块3用于创建记录文件,获取列表文件的信息并将列表文件的信息写入记录文件中,并下载列表文件;指向标志设定及赋初值模块4用于设定指向标志P并赋初值P=1;指向标志读取模块5用于读取列表文件的指向标志P所指向的内容;指向标志判断模块6用于判断指向标志P所指向的内容是否为空,并在内容不为空时获取指向标志P所指向的当前待下载文件名,并将当前待下载文件的信息写入记录文件中;当前文件下载模块7用于依据记录文件中的信息将当前待下载文件下载到指定位置;指向标志自加模块8用于使指向标志P自加1并返回;下载结束模块9用于结束本次课件下载。值得一提的是,在本实施例的另外一些情况下,该装置也可以不包括上述记录文件判断模块1,这时,如果下载的文件一次没有下载完,等下次下载时要重新开始下载,这种情况虽然不支持断点续传,但因为不需要记录文件判断模块1,节省了判断是否存在记录文件所使用的时间和开销,所以节省了系统的开支。
如图5所示,本实施例中,上述当前文件下载模块7进一步包括相对路径读取单元71、中间变量设定及赋初值单元72、路径读取及文件夹判断单元73、自加及判断单元74和T级文件下载单元75;其中,相对路径读取单元71用于读取当前待下载文件的相对路径,上述相对路径包括T级路径;中间变量设定及赋初值单元72用于设定中间变量K并赋初值K=1;路径读取及文件夹判断单元73用于读取第K级路径,并判断用于存放下载课件的位置是否存在其名称为第K级路径所指定名称的文件夹,并在未存在时在第K-1级路径所指定名称的文件夹中创建其名称为第K级路径指定名称的文件夹;自加及判断单元74用于使K自加1,并判断K是否大于T-1;T级文件下载单元75用于将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
在本实施例的另外一些情况下,上述当前文件下载模块7也可以是另外的结构,如图6所示,上述当前文件下载模块7包括相对路径读取单元71、中间变量设定及赋初值单元72、K级路径判断单元73’、自加及判断单元74、K值判断单元76’、自加及返回单元77’和T级文件下载单元75;其中,相对路径读取单元71用于读取当前待下载文件的相对路径,上述相对路径包括T级路径;中间变量设定及赋初值单元72用于设定中间变量K并赋初值K=1;K级路径判断单元73’用于判断当前待下载文件的第K级路径与指向标志P所指向的前一待下载文件的第K级路径是否相同;自加及判断单元77’用于使K自加1,并判断K是否大于T-1;K值判断单元76’用于判断K是否大于T-1,并在K不大于T-1时在第K-1级路径所指定名称的的文件夹中创建其名称为第K级路径指定名称的文件夹;自加及返回单元77’用于使K自加1并返回;T级文件下载单元75用于将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。值得一提的是,上述待下载文件包括多个块,在下载时按块进行下载。上述记录文件包括已下载文件或待下载文件的块编号或/和文件大小或/和文件名或/和IP地址或/和相对路径。
总之,在本实施例中,采用http协议对课件中的文件进行下载,http协议具有以下优点:支持客户/服务器模式;客户向服务器请求服务时,只需传送请求方法和路径,上述head请求和get请求是常用的请求方法,所以简单快速;由于http协议简单,使得http服务器的程序规模小,因而通信速度很快;http允许传输任意类型的数据对象,正在传输的类型由Content-Type(内容类型)加以标记,所以其灵活;http无连接,无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,这样可以节省传输时间。本实施例中,通过读取服务器中存放的列表文件并将其进行下载,列表文件中记录着课件中各个文件的具体相对路径,随着课件中文件数量的不同,列表文件记录的内容响应随着变化,根据列表文件中记录的各个文件的具体相对路径,对课件里的文件一一进行下载。在下载时,可对单个文件进行分块,按块进行下载,也即对课件进行分时段下载而无需一次性下载完,下次下载时从上次暂停的地方开始下载,所以其支持断点续传。当然,也可以一次性将文件下载完。
值得一提的是,本实施例中,下载时采用多线程下载,能对下载速度进行限制,防止网络带宽占用太大,具体通过将客户端用户设置的下载限制速度除以当前有多少个线程在运行,得到每个线程在一秒内能下载的数据量,即计算出每个线程每秒最多能下载的数据量即最大数据量,在请求时,每次只申请最大数据量,且在计算时,如果时间不足一秒,则进入休眠状态,停止下载,直至下一秒再重新下载,如果时间超过一秒,则不进行限制,使其以最大速度进行下载,因为这时的最大速度比设定的限制速度要小,从而达到限速的功能。用户根据自己的网络使用状况,在下载时可以请求进行限速处理,从而不影响其正常使用。此外,下载时,用户只需知道一个需要下载的课件名而无需理会课件里面的文件内容,所以其使用方便。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种基于http协议下载课件的方法,其特征在于,包括如下步骤:
B)判断是否存在列表文件,如是,执行步骤D);否则,执行步骤C);所述列表文件包括所述课件的所有文件相对路径;
C)创建记录文件,获取所述列表文件的信息并将所述列表文件的信息写入记录文件中,并下载所述列表文件;
D)设定指向标志P并赋初值P=1;
E)读取所述列表文件的指向标志P所指向的内容;
F)判断所述指向标志P所指向的内容是否为空,如是,执行步骤I);否则,获取指向标志P所指向的当前待下载文件名,并将所述当前待下载文件的信息写入所述记录文件中,执行步骤G);
G)依据所述记录文件中的信息将所述当前待下载文件下载到指定位置;
H)所述指向标志P自加1,返回步骤E);
I)结束本次课件下载;
所述步骤G)进一步包括:
G1)读取所述当前待下载文件的相对路径,所述相对路径包括T级路径;
G2)设定中间变量K并赋初值K=1;
G3)读取第K级路径,并判断用于存放下载课件的位置是否存在其名称为所述第K级路径所指定名称的文件夹,如是,执行步骤G4);否则,在第K-1级路径所指定名称的文件夹中创建其名称为所述第K级路径指定名称的文件夹,并执行步骤G4);
G4)K自加1,并判断K是否大于T-1,如是,执行步骤G5);否则,返回步骤G3);
G5)将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中;
或者所述步骤G)进一步包括:
G1’)读取所述当前待下载文件的相对路径,所述相对路径包括T级路径;
G2’)设定中间变量K并赋初值K=1;
G3’)判断所述当前待下载文件的第K级路径与所述指向标志P所指向的前一待下载文件的第K级路径是否相同,如是,执行步骤G4’);否则,执行步骤G5’);
G4’)K自加1,并判断K是否大于T-1,如是,执行步骤G7’);否则,返回步骤G3’);
G5’)判断K是否大于T-1,如是,执行步骤G7’);否则,在第K-1级路径所指定名称的文件夹中创建其名称为所述第K级路径指定名称的文件夹,执行步骤G6’);
G6’)K自加1,返回步骤G5’);
G7’)将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
2.根据权利要求1所述的基于http协议下载课件的方法,其特征在于,在所述步骤B)之前还包括:
A)判断是否存在记录文件,如是,执行步骤G);否则,执行步骤B)。
3.根据权利要求1-2任意一项所述的基于http协议下载课件的方法,其特征在于,所述待下载文件包括多个块,在下载时按块进行下载。
4. 根据权利要求3所述的基于http协议下载课件的方法,其特征在于,所述记录文件包括已下载文件或待下载文件的块编号或/和文件大小或/和文件名或/和IP地址或/和相对路径。
5. 一种实现如权利要求1所述的基于http协议下载课件的方法的装置,其特征在于,包括:
列表文件判断模块:用于判断是否存在列表文件;所述列表文件包括所述课件的所有文件相对路径;
文件创建及下载模块:用于创建记录文件,获取所述列表文件的信息并将所述列表文件的信息写入记录文件中,并下载所述列表文件;
指向标志设定及赋初值模块:用于设定指向标志P并赋初值P=1;
指向标志读取模块:用于读取所述列表文件的指向标志P所指向的内容;
指向标志判断模块:用于判断所述指向标志P所指向的内容是否为空,并在内容不为空时获取指向标志P所指向的当前待下载文件名,并将所述当前待下载文件的信息写入所述记录文件中;
当前文件下载模块:用于依据所述记录文件中的信息将所述当前待下载文件下载到指定位置;
指向标志自加模块:用于使所述指向标志P自加1并返回;
下载结束模块:用于结束本次课件下载;
所述当前文件下载模块进一步包括:
相对路径读取单元:用于读取所述当前待下载文件的相对路径,所述相对路径包括T级路径;
中间变量设定及赋初值单元:用于设定中间变量K并赋初值K=1;
路径读取及文件夹判断单元:用于读取第K级路径,并判断用于存放下载课件的位置是否存在其名称为所述第K级路径所指定名称的文件夹,并在未存在时在第K-1级路径所指定名称的文件夹中创建其名称为所述第K级路径指定名称的文件夹;
自加及判断单元:用于使K自加1,并判断K是否大于T-1;
T级文件下载单元:用于将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中;
或者所述当前文件下载模块进一步包括:
相对路径读取单元:用于读取所述当前待下载文件的相对路径,所述相对路径包括T级路径;
中间变量设定及赋初值单元:用于设定中间变量K并赋初值K=1;
K级路径判断单元:用于判断所述当前待下载文件的第K级路径与所述指向标志P所指向的前一待下载文件的第K级路径是否相同;
自加及判断单元:用于使K自加1,并判断K是否大于T-1;
K值判断单元:用于判断K是否大于T-1,并在K不大于T-1时在第K-1级路径所指定名称的文件夹中创建其名称为所述第K级路径指定名称的文件夹;
自加及返回单元:用于使K自加1并返回;
T级文件下载单元:用于将第T级路径所指定名称的文件下载到第T-1级路径指定名称的文件夹中。
6. 根据权利要求5所述的基于http协议下载课件的方法的装置,其特征在于,还包括:
记录文件判断模块:用于判断是否存在记录文件,如是,依据所述记录文件中的信息将所述当前待下载文件下载到指定位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210294519.6A CN102790806B (zh) | 2012-08-17 | 2012-08-17 | 一种基于http协议下载课件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210294519.6A CN102790806B (zh) | 2012-08-17 | 2012-08-17 | 一种基于http协议下载课件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102790806A CN102790806A (zh) | 2012-11-21 |
CN102790806B true CN102790806B (zh) | 2015-02-11 |
Family
ID=47156104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210294519.6A Active CN102790806B (zh) | 2012-08-17 | 2012-08-17 | 一种基于http协议下载课件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102790806B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103686448A (zh) * | 2013-12-25 | 2014-03-26 | 乐视网信息技术(北京)股份有限公司 | 视频转码下载限速的方法和系统 |
CN105045655A (zh) * | 2015-05-15 | 2015-11-11 | 广东小天才科技有限公司 | 应用资源加载方法和装置 |
CN105338068B (zh) * | 2015-10-10 | 2018-10-26 | 天脉聚源(北京)教育科技有限公司 | 一种下载方法及装置 |
CN109032759A (zh) * | 2018-08-01 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种虚拟化系统的控制方法和装置 |
CN111930696B (zh) * | 2020-07-22 | 2023-08-01 | 建信金融科技有限责任公司 | 一种基于小程序的文件传输处理方法及系统 |
CN112714199B (zh) * | 2021-03-29 | 2021-06-25 | 北京拓课网络科技有限公司 | 一种课件加载方法、系统及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587495A (zh) * | 2009-07-08 | 2009-11-25 | 伍帝州 | 通过浏览器下载部署应用并提供应用入口的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9247312B2 (en) * | 2011-01-05 | 2016-01-26 | Sonic Ip, Inc. | Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol |
-
2012
- 2012-08-17 CN CN201210294519.6A patent/CN102790806B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587495A (zh) * | 2009-07-08 | 2009-11-25 | 伍帝州 | 通过浏览器下载部署应用并提供应用入口的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102790806A (zh) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102790806B (zh) | 一种基于http协议下载课件的方法及装置 | |
CN111984356B (zh) | 页面跳转方法、装置、计算机设备和存储介质 | |
CN101216834B (zh) | 一种文件下载方法、系统、装置与服务器 | |
CN103475682B (zh) | 文件迁移方法及设备 | |
CN106933872A (zh) | 一种通过传统文件系统接口访问云存储服务的方法及装置 | |
CN105611422B (zh) | 基于多媒体榜单的在线直播方法及装置 | |
CN102546836A (zh) | 一种上传文件的方法、终端、服务器及系统 | |
CN101833570A (zh) | 一种移动终端页面推送优化的方法和装置 | |
US20140359066A1 (en) | System, method and device for offline downloading resource and computer storage medium | |
CN105786839A (zh) | 一种应用数据获取方法及装置 | |
CN100536472C (zh) | 一种网络资源访问控制的方法、模块和服务器 | |
CN104301161A (zh) | 业务质量指标的计算方法、计算装置以及通信系统 | |
CN101184110A (zh) | 一种资源下载的方法、系统和装置 | |
CN102938788A (zh) | 事件的处理方法和装置 | |
CN110035133B (zh) | 在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备 | |
CN104820680A (zh) | 一种通用型分布式爬虫调度系统 | |
CN105471980B (zh) | 一种基于嵌入式OpenWrt无线路由器技术的云服务器数据访问方法 | |
CN105550179A (zh) | 一种网页收藏方法和浏览器插件 | |
CN105516319B (zh) | 管理http报文的方法和装置 | |
CN102904935B (zh) | 基于家庭网关的下载方法、设备和系统 | |
CN102819453B (zh) | 信息获取的方法及信息获取平台 | |
CN102685155B (zh) | 内容传送的方法、内容传送服务器及内容传送代理服务器 | |
CN106445700B (zh) | 一种url匹配方法及装置 | |
CN103368988B (zh) | 资源分享方法、系统和装置 | |
CN110474954B (zh) | 基于区块链的文件分享方法、装置、计算机设备及可读存储介质 |
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 |