一种下载文件的方法和系统与流程

文档序号:11638356阅读:201来源:国知局
一种下载文件的方法和系统与流程
本发明涉及移动通信领域,尤其涉及一种下载文件的方法和系统。

背景技术:
随着通信技术的发展,电子书、音频、视频等电子文件在商业领域中的应用愈加广泛。随之而来的对其进行规范管理也突显重要。而在管理电子文件时,对文件的检索和下载尤为重要。传统的C/S(Client/Server,客户端/服务器)结构的管理系统,下载速度较快,但其部署和维护成本较高。而B/S(Browser/Server,浏览器/服务器)结构的管理系统凭借其易维护和部署的优势受到了越来越多的人的关注,但是其下载速度较慢。现阶段流行的下载模式有基于HTTP、FTP、P2P和P2SP的下载模式。其中HTTP下载模式必须要客户端和服务器建立连接后从服务器端下载服务器上的资源,而服务器的资源有限,有可能有些用户不能找到自己理想的资源,并且同时连接到服务器上的客户端比较多时,会在成服务器响应缓慢,影响下载速度。FTP下载模式由于使用的是明文传输,容易被窃听。P2P和P2SP下载模式由于缺乏安全防护手段以及必要的认证机制,存在许多安全隐患,另外宽带利用方面也相当浪费。

技术实现要素:
有鉴于此,本发明实施例提供了一种改进的下载文件的方法和系统,来解决以上背景技术部分提到的技术问题。一方面,本发明实施例提供了一种下载文件的方法,所述方法包括:接收用户下载命令,根据下载命令将所要下载文件的文件标识写入中间文件,同时将中间文件的地址信息返回到客户端;根据接收到的地址信息启动下载插件,并读取中间文件中的文件标识;根据所述文件标识下载对应的文件。进一步的,所述接收用户下载命令,根据下载命令将所要下载文件的文件标识写入中间文件,同时将中间文件的地址信息返回到客户端包括:加密所要下载文件的文件标识;将加密后的文件标识存入中间文件;获取中间文件的地址信息。进一步的,所述文件标识为文件编号。进一步的,所述中间文件为XML文件。进一步的,所述根据接收到的地址信息启动下载插件,并读取中间文件中的文件标识包括:在接收到的地址信息符合预定格式时启动所述下载插件;解析中间文件中的加密数据信息;解密所述加密数据信息,获取所要下载文件的文件标识。进一步的,所述根据文件标识下载对应的文件包括:判断所述文件标识对应的文件是否曾被下载;在所述文件标识对应的文件已下载但与服务器中的文件不符或未被下载时,下载对应的文件。进一步的,所述方法还包括在文件下载的同时监听新的下载任务,如果有新的下载任务,加入到下载列表开始下载。对应地,本发明实施例还提出了一种下载文件的系统,所述系统包括:获取模块,用于接收用户下载命令,根据下载命令将所要下载的文件标识写入中间文件,同时将中间文件的地址信息返回到客户端;识别模块,用于根据接收到的地址信息启动下载插件,并读取中间文件中的文件标识;下载模块,根据所述文件标识下载对应的文件。进一步的,所述获取模块包括:加密单元,用于加密所述下载文件的文件标识;存储单元,用于将加密后的文件标识存入中间文件;地址获取单元,用于获取中间文件的地址信息。进一步的,所述文件标识为文件编号。进一步的,所述中间文件为XML文件。进一步的,所述识别模块包括:启动单元,用于在接收到的地址信息符合预定格式时启动所述下载插件;解析单元,解析中间文件中的加密数据信息;解密单元,解密所述加密数据信息,获取所要下载文件的文件标识。进一步的,所述下载模块包括:判断单元,用于判断所述文件标识对应的文件是否曾被下载;下载单元,用于在所述文件标识对应的文件已下载但与服务器中的文件不符或未被下载时,下载对应的文件。进一步的,所述系统还包括:监听模块,用于在下载过程中监听新的下载任务,如果有新的下载任务,加入到下载列表开始下载。本发明实施例提出了一种下载文件的方法和系统,本发明通过下载插件的方式,使下载客户端程序与数据库完全脱离,确保了系统的安全,另外通过对所有请求的参数进行加密,有效地保证了数据库的安全性。附图说明图1是本发明实施例一中的一种下载文件的方法的实现流程图。图2是本发明实施例二中的一种下载文件的方法的实现流程图。图3是本发明实施例三中的一种下载文件的方法的实现流程图。图4是处理多任务时客户端工作界面示意图。图5是本发明实施例四中的一种下载文件的系统的结构示意图。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在图1中示出了本发明的第一实施例。图1为本发明第一实施例中一种下载文件的方法的实现流程100,该流程详述如下:在步骤110中,接收用户下载命令,根据下载命令将所要下载文件的文件标识写入中间文件,同时将中间文件的地址信息返回到客户端。;在第一实施例中,所述下载命令是用户在WEB页面上对检索到的下载文件点击下载后发出的点击命令。所述所要下载文件的文件标识为文件编号。当用户在WEB页面发出下载命令后,WEB端在后台收集用户所要下载文件的文件编号、文件名称和文件类型信息,并将所述文件编号加密后存储到中间文件中,同时将生成所述中间文件的地址信息返回到客户端,其中所述文件类型可以是DOC、PDF、MP3、TXT、JPG等,所述文件编号加密后可以为一系列字符串,也可以为数字与字符的组合形式,所述中间文件可以为XML(ExtensibleMarkupLanguage,可扩展标记语言)文件,所述中间文件的地址信息为生成中间文件的URL(Uniform/UniversalResourceLocator,统一资源定位符)路径。例如用户要下载PDF文件“校园环境与设计墙面布置”,经过步骤110后形成的XML文件如下:<objectobjectname=“校园环境与设计墙面布置”objecttype=“0”>,<![CDATA[3AMH7TvYUuXDnQyuXNF4J0VSUF2p8sAAEKxltv3CXILSuwY/0FN0Sw==]]>,上述XML文件中包含了文件名称、文件类型、加密的文件编号以及加密后的文件编号的存储位置等信息,其中文件名称为校园环境与设计墙面布置、文件类型为0(在这里代表PDF格式)、加密的文件编号为3AMH7TvYUuXDnQyuXNF4J0VSUF2p8sAAEKxltv3CXILSuwY/0FN0Sw==,加密后存储在<![CDATA[]]>内。在步骤120中,根据接收到的地址信息启动下载插件,并读取中间文件中的文件标识。在第一实施例中,所述地址信息为生成中间文件的URL路径,所述下载插件是一种独立的客户端程序。所述下载插件由与之绑定的自定义URL协议启动。所述自定义URL协议为客户端在本地安装时在注册表的根项HKEY_CLASSES_ROOT注册的一种协议,注册时只需在HKEY_CLASSES_ROOT写入指定的键值对,所述键值对包括键名称和所建立值。所述所建立值包括显示名称、类型和数据,其中显示名称中可以是默认的图标,也可以自定义名称。当客户端完成安装,并且写入注册表根项HKEY_CLASSES_ROOT的键值对成功,则自定义URL协议生效。例如在注册表的根项HKEY_CLASSES_ROOT注册名称为TWSMDOWNLOADHELPER的协议,当用户点击符合该协议格式的链接时,如TWSMDOWNLOADHELPER://|http://192.168.0.1/web/123.xml,浏览器就会自动调用解析方法来解析自定义协议,从而启动下载插件。所述下载插件启动后,会自动解析所述中间文件中的加密数据信息,然后对所述加密数据信息进行解密处理,获取所要下载的文件标识信息。在步骤130中,根据所述文件标识下载对应的文件。所述下载插件获取到文件标识后,向文件服务器发出下载请求。文件服务器根据所述下载请求中的文件标识下载对应的文件。本发明的第一实施例提供的方法通过下载插件的方法使下载客户端程序与数据库完全脱离,确保了系统的安全,另外通过对所有请求参数进行加密,有效地保证了数据库的安全性。在图2中示出了本发明的第二实施例。图2为本发明第二实施例中一种下载文件的方法的实现流程200,该流程详述如下:在步骤210中,接收用户下载命令,根据下载命令将所要下载的文件标识写入中间文件,同时将中间文件的地址信息返回到客户端。在步骤220中,根据接收到的地址信息启动下载插件,并读取中间文件中的文件标识。在步骤230中,根据所述文件标识判断与所述文件标识对应的文件是否曾被下载,如果否,则执行转到步骤240,创建多个下载线程,下载与文件标识对应的文件,如果是,则执行步骤250,在已下载的文件中查找所述文件标识对应的文件,并计算已下载文件和文件服务器端对应文件的MD5(MessageDigestAlgorithm5,消息摘要算法第五版)码。在步骤260中,判断步骤250中计算的MD5码是否一致,如果是,则执行步骤270,下载成功,如果否,则执行步骤280,删除已下载的文件,然后再执行步骤240。在第二实施例中,上述实现流程200的步骤210、步骤220与第一实施例中相应的步骤110、步骤120相同,在此不再赘述。从图2可以看出,与第一实施例不同的是,第二实施例中增加了对解密后的文件标识进行了判断和创建下载线程的步骤。下载插件获取到下载文件的文件标识后,连接服务器并判断所述文件标识对应的文件是否曾被下载过,如果否,则从文件服务器下载对应的文件,如果是,则在已下载的文件列表中查找对应的文件,并计算已下载文件和文件服务器端对应文件的MD5码,如果二者的计算结果一致,则下载成功,不再下载,如果计算结果不一致,则删除已下载文件,重新下载该文件。下载插件在下载文件标识对应的文件时,根据检索到文件的字节划分下载线程,不同的字节代表文件的不同部分,每个部分对应一个下载线程,每个线程下载的数据都会保存在自定义的缓存中,等所有的线程下载结束后,每个线程缓存中的内容就会写入到文件中,组成一个完整的文件。每个线程开始下载后,下载插件会记录下载过程的变化并以序列化的方式保存。记录的内容包括加密后的未下载完的文件标识,文件的保存路径和文件已下载长度信息,当下次再运行下载插件时会加载上次保存的序列化文件,如果上次下载未完成将会继续上次的下载直到完成,如果上次下载完成则等待建立新的下载任务。本发明的第二实施例通过对文件标识对应的本地文件和文件服务器中的文件进行比较,确保了所下载文件的唯一性和完整性;下载文件时通过创建多个下载线程与服务器连接,获得了较高的宽带,从而提高了下载速度;另外通过自动加载下载项,提高了下载的效率。在图3中示出了本发明的第三实施例。图3为本发明第三实施例中一种下载文件的方法的实现流程300,该流程详述如下:在步骤310中,接收用户下载命令,根据下载命令将所要下载的文件标识写入中间文件,同时将中间文件的地址信息返回到客户端。在步骤320中,根据接收到的地址信息启动下载插件,并读取中间文件中的文件标识。在步骤330中,根据所述文件标识下载对应的文件。在步骤340中,下载的同时监听新的下载请求。在第三实施例中,上述实现流程300的步骤310、步骤320、步骤330与第一实施例中相应的步骤110、步骤120、步骤130相同,在此不再赘述。从图3可以看出,与第一实施例不同的是,第三实施例中增加了步骤340,在下载的同时监听新的下载请求。下载插件在下载文件时,也监听新的下载请求,若有新的下载任务到达,则判断新任务对应的文件标识和保存路径在下载列表中是否存在,如果是,则不再下载,如果否,则加入到下载列表开始下载。如果下载插件程序已启动,在WEB页面再次点击下载命令,将会启动新的下载插件,同时将生成中间文件的地址信息作为参数传入当前已启动的下载插件中,再关闭新的下载插件。新的下载任务将加入到当前任务列表,开始下载,如图4所示为当监听到不同任务时下载客户端的工作界面。在下载过程中可能会遇到意外,如断网、存储空间已满等情况,下载插件会自动记录文件的下载状况,当下载插件程序再次启动时,会自动加载上次未完成的下载。本发明的第三实施例通过实时监听用户下载请求,实现了下载任务的叠加,避免了对相同文件重复下载,极大地提高了宽带的利用率。在图5中示出了本发明的第四实施例。图5为本发明第四实施例中一种下载文件的系统的结构示意图。如图5所示,本实施例所述的一种下载文件的系统500包括:获取模块510,用于接收用户下载命令,根据下载命令将所要下载的文件标识写入中间文件,同时将中间文件的地址信息返回到客户端;识别模块520,用于根据接收到的地址信息启动下载插件,并读取中间文件中的文件标识;下载模块530,用于根据所述文件标识下载对应的文件。在第四实施例中,所述获取模块510包括:加密单元511,用于加密所述下载文件的文件标识;存储单元512,用于将加密后的文件标识存入中间文件;地址获取单元513,用于获取中间文件的地址信息。所述识别模块520包括:启动单元521,用于在接收到的地址信息符合预定格式时启动所述下载插件;解析单元522,解析中间文件中的加密数据信息;解密单元523,解密所述加密数据信息,获取所要下载文件的文件标识。所述下载模块包括530包括:判断单元531,判断单元,用于判断所述文件标识对应的文件是否曾被下载;下载单元532,用于在所述文件标识对应的文件已下载但与服务器中的文件不符或未被下载时,下载对应的文件。所述下载文件的系统还包括监听模块,用于在下载过程中监听新的用户下载请求,如果有新的任务到达,则将新任务加入下载列表中,开始下载。本发明实施例通过下载插件的方式,使下载客户端程序与数据库完全脱离,确保了系统的安全,另外通过对所有请求的参数进行加密,有效地保证了数据库的安全性。在下载文件时创建了多个下载线程,并对下载请求实时监听,从而提高了下载速度,节约了宽带。显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1