CN104639599B - 一种实现文件批量下载的系统及方法 - Google Patents

一种实现文件批量下载的系统及方法 Download PDF

Info

Publication number
CN104639599B
CN104639599B CN201410424530.9A CN201410424530A CN104639599B CN 104639599 B CN104639599 B CN 104639599B CN 201410424530 A CN201410424530 A CN 201410424530A CN 104639599 B CN104639599 B CN 104639599B
Authority
CN
China
Prior art keywords
file
module
user
web
identification information
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
Application number
CN201410424530.9A
Other languages
English (en)
Other versions
CN104639599A (zh
Inventor
董岩
江卓逞
曾佩杰
蒋亚平
吴飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Helicopter Research and Development Institute
Original Assignee
China Helicopter Research and Development Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Helicopter Research and Development Institute filed Critical China Helicopter Research and Development Institute
Priority to CN201410424530.9A priority Critical patent/CN104639599B/zh
Publication of CN104639599A publication Critical patent/CN104639599A/zh
Application granted granted Critical
Publication of CN104639599B publication Critical patent/CN104639599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

一种实现文件批量下载的系统及方法,属于计算机网络、网络数据传输技术领域。其特征在于在Web应用程序中设置文件输出模块、用户认证模块、文件权限管理模块,以及在用户终端设置网页浏览模块、网页解析模块、文件提取模块。并实现了利用用户终端的网页浏览模块访问和使用Web应用程序,并提供能够利用网页解析模块配合文件提取模块经过用户认证模块和文件权限管理模块的许可后合法获取数据文件清单,并通过请求文件输出模块依次获取并保存所需的数据文件的功能。本发明使得Web应用程序能够在具备Web应用易部署易升级等优点的同时,具备批量下载的功能。

Description

一种实现文件批量下载的系统及方法
技术领域
本发明属于计算机网络、网络数据传输技术领域,涉及一种文件批量下载方法。
背景技术
批量下载技术一般都具有一定的应用场景,通常批量下载技术都应用于公开网络资源的下载,并与服务器端技术结合紧密,常见的方式有后台打包、使用批量下载工具等方法。在企业应用中,一些关键资源都被应用系统以严格的权限分割技术和访问表控制技术进行管控,通常对于以Web形式发布的应用系统而言,由于浏览器与服务端的交互逻辑是每次请求只能获取一份数据文件,且处于安全考虑,几乎所有浏览器内核都要求用户自己指定保存位置,或者保存在一个特定的位置,且下载操作需要用户逐个触发,通常这类应用系统不会实现批量下载功能。而以客户端形式发布的应用系统则只能通过与业务高度耦合的方式实现批量下载功能。
现有的批量下载技术都只能下载公开资源,而全部使用客户端程序实现批量下载则将批量下载功能耦合在业务层,比较死板。
发明内容
本发明的目的:
本发明针对现有批量下载技术的不足,提出了一种让基于Web的应用系统具备批量下载功能的系统及方法。
本发明的技术方案:
本发明通过在用户终端将网页访问功能和文件提取功能相结合,实现了利用用户终端的网页浏览模块访问和使用Web应用程序,并提供能够利用网页解析模块配合文件提取模块经过用户认证模块和文件权限管理模块的许可后合法获取数据文件清单,并通过请求文件输出模块依次获取并保存所需的数据文件的功能。
本发明的技术方案是:一种实现文件批量下载的系统,包括在Web应用程序中设置文件输出模块、用户认证模块、文件权限管理模块,以及在用户终端设置网页浏览模块、网页解析模块、文件提取模块。
文件输出模块用于根据文件标识信息寻找到物理文件,并向请求方输出文件数据。
用户认证模块用于生成用户标识信息,并能够根据提交的用户标识信息识别用户。
文件权限管理模块用于判定指定的文件是否能够被指定用户下载。
网页浏览模块用于访问Web应用程序的系统界面。
网页解析模块用于从网页中获取用户标识信息和用户需要下载的文件标识信息清单。
文件提取模块用于访问Web应用程序的文件输出模块并获得指定的文件。
一种实现文件批量下载的方法,其实现步骤如下:
1)用户通过网页浏览模块登录Web应用程序并提交验证信息。
2)登录成功后Web应用程序中返回登录成功页面,同时用户认证模块生成用户标识信息并写入登录成功页面。否则返回1)让用户继续尝试登录验证。
3)用户终端的网页浏览模块获取登录成功页面,网页解析模块获取步骤2所述的用户标识信息。
4)当用户访问带有文件清单的网页时,Web应用程序生成文件标识信息清单,并写入此网页。用户终端的网页浏览模块获取此带有文件清单的网页时,网页解析模块根据文件标识信息清单解析出所有需要下载的文件标识信息。网页可加入用户选取功能,使得网页解析模块执行解析时只得到用户想要下载的文件标识信息清单。
5)文件提取模块将文件标识信息清单中的一个未处理的文件标识信息和用户标识信息作为请求参数发送给Web应用程序。如果Web应用程序中的用户认证模块规定了用户标识信息的加密方法,则根据该加密方法进行加密后再作为参数提交。
6)Web应用程序根据用户标识信息找到对应的用户信息,根据文件标识信息找到对应的文件信息,如果两者都能对应成功,则使用文件权限管理模块判定该文件是否具有被该用户访问的权利,如果有访问权利,则执行第7)步,上述各条件有一项不满足则执行第9)步。
7)Web应用程序的文件输出模块根据第5)步提交的文件标识信息在文件存储系统中寻找物理文件,寻找成功则输出文件,否则转入第9)步。可在输出文件时附加客户端存放位置和文件标题等附加信息。
8)用户终端的数据提取模块得到数据文件。并可按照文件名和存放位置等附加信息保存此文件。转入第11)步。
9)Web应用程序返回错误信息,此错误信息可包括文件名、用户名等关联信息以及访问被拒绝的原因等关联输出信息。
10)用户终端的数据提取模块获取错误信息。可以选择将错误信息中的全部或部分信息记录入日志文件。
11)如果文件标识信息清单中的全部文件标识信息都已经被处理,则结束流程,反之则返回第5)步开始继续执行。
所述用户标识信息应具有难以枚举的复杂程度,并能够在Web应用程序中对应出用户的信息子集。
所述文件标识信息应具有难以枚举的复杂程度,并能够在Web应用程序中对应出物理文件的信息以及其他如步骤8所述的附加信息。
所述网页解析模块,其从网页中解析出用户标识信息和文件标识信息清单的方法,不限于实施例中给出的方法。
所述网页浏览模块,应遵循WWW标准向用户UI接口输出相应的文档化界面,不限于使用IE、Chrome等浏览器内核和/或自行实现网页解析功能等方式实现。
所述文件提取模块,在向文件输出模块提交请求时应至少包含用户标识信息和文件标识信息,但根据实际应用情况可不限于只包含上述信息。
如步骤2)所述将生成的用户标识信息写入登录成功页面,不限于写入响应数据的任何一个位置,但应能被网页解析模块访问。
如步骤4)所述将文件标识信息清单写入页面,不限于写入响应数据的任何一个位置,但应能被网页解析模块访问,文件标识信息清单数据格式不限,但应能被网页解析模块解析出单个的文件标识信息清单。
本发明的有益效果:
本发明专利实现了利用网页浏览模块实现Web应用程序功能逻辑,同时利用文件提取功能模块实现批量下载和文件自动保存的功能逻辑,使得Web应用程序在具备Web应用易部署易升级等优点的同时,能够提供批量下载功能。
附图说明
图1为文件批量下载系统示意图
图2为文件批量下载方法流程图
图3为实施方式1的流程图
具体实施方式
实施方式1:
本实施方式提供了一种利用在桌面应用程序中加入内嵌浏览器,利用内嵌浏览器实现页面访问,利用桌面应用程序实现文件批量下载的方法,实现步骤如下:
1)用户使用一个带有内嵌浏览器的桌面应用程序登录Web页面。
2)Web服务程序生成返回页面,同时在一个区域内自动生成一个文本验证码,并使用混淆码对该文本验证码进行摘要加密,将加密后的文本验证码与当前登录的用户信息进行绑定存储,并记录生效期和失效期,将文本验证码随页面发送到用户的浏览器。
3)用户端的桌面应用程序中的内嵌浏览器获取Web页面。
4)用户端的桌面应用程序对内嵌浏览器中的Web内容进行获取分析。取得文本验证码和Web页面表单参数集,并取得文件标识符的集合。
5)用户端的桌面应用程序对文本验证码使用与步骤2)所述同样的混淆码进行摘要加密,将步骤4中得到的文件标识符的集合中的一个未处理的文件标识符和加密后的文本验证码作为请求参数发送给Web服务程序。
6)Web服务程序根据加密后的的文本验证码找出用户信息,如果成功找到对应的用户信息,则再根据生效期和失效期判定该文本验证码是否有效,如果有效,则再根据文件标识符和数据库中文件权限的设定判定用户是否具有文件的访问权限,如果有访问权限则执行第7步,上述各条件有一项不满足则执行第9步。
7)Web服务程序根据文件标识符找到数据文件,并且写入Http响应流中,然后更改Http报文头中的字段,指定文件名和存放位置等附加信息。
8)用户端的桌面应用程序获取数据文件,并按照文件名和附加信息中包含的路径信息进行保存。
9)Web服务程序根据数据库内容将文件标识符对应的文件名,以及访问被拒绝的原因作为错误信息写入Http响应流,并在Http报文头中加入错误标记。
10)用户端的应用程序获取响应流,根据Http报文头中的错误标记将该响应识别为错误内容响应,并将其内容写入日志。
11)如果文件标识符集合中的全部文件都已经被下载,则结束流程,反之则返回第5)步开始继续执行。
实施例1:
本实施例是某集团公司两个单位间进行数据交换的一个Web应用系统,系统使用ASP.NET技术进行开发,使用Session机制同步会话,该应用系统中提供下载的文件采用程序控制权限以及转发的方式发送给用户,文件在被下载之前用户只能获取其ID和文件名,一份文件只有被授权的用户能够下载。该系统提供了一个专用浏览器,即嵌入浏览器的一个Windows桌面应用程序,使用ASP.NET开发。本实施例中用户实现批量下载的步骤如下:
1)用户使用专用浏览器登录Web应用系统。
2)ASP.NET页面采用MasterPage方式生成,其中Master页面中增加一个asp:Hidden标签,用于存放文本验证码,该标签仿照ASP.NET的ViewState机制来命名ID,如命名为__TEXTHASHVERIFICATION(并假设下述步骤使用该命名)。并在Master页面的Load过程中增加如下逻辑:如果当前登录的用户暂时与任何文本验证码绑定,或者已经绑定的文本验证码的过期时间已到,则使用GUID技术自动生成一个文本验证码,并使用与专用浏览器协商一致的混淆码对该文本验证码进行摘要加密,将加密后的文本验证码更新到数据库中的用户信息中的加密验证码属性,根据当前时间更新生效期,且根据配置文件中规定的有效时间更新失效期,将加密之前的文本验证码写入Master页面中增加的asp:Hidden标签的Text属性。
3)用户端的专用浏览器获取登录后的Web页面,并进入文件下载页面。
4)用户端的专用浏览器对内嵌浏览器中的Web内容进行获取分析,首先找到Web页面中id为__TEXTHASHVERIFICATION的input-hidden标签,并取得value属性使用textCode变量进行存储。使用DOM解析技术通过网页标签内容附加的属性信息获取所要下载的文件ID的集合,假设其文件ID是被存储到名为fileID的输入域中。
5)用户端的专用浏览器对textCode变量使用与步骤2)所述同样的混淆码进行摘要加密,并将其值赋值给textHashCode变量,开始遍历步骤4中得到的文件ID集合,将当前正在遍历的文件ID和textHashCode作为请求参数,使用HttpWebRequest模式对当前内嵌浏览器正在访问的Web页面的地址进行POST请求,并将当前正在遍历的文件ID作为表单中的fileID参数,以及textHashCode变量作为表单中的__TEXTHASHVERIFICATION参数。
6)ASP.NET页面处理程序接收到该请求,由于没有提交asp.net_sessionid属性的Cookie字段,所以该页面处理程序无法根据会话状态获取用户信息,则该页面处理程序尝试获取请求中提交的__TEXTHASHVERIFICATION的属性值,如果成功获取,则根据该值寻找数据库中的用户信息,如果成功找到对应的用户信息,则再根据生效期和失效期判定该文本验证码是否有效,如果有效,则再根据文件标识符和数据库中文件权限的设定判定该用户是否具有文件的访问权限,如果有访问权限则执行第7步,上述各条件有一项不满足则执行第9步。
7)ASP.NET页面处理程序将该用户信息视同为已登录状态,执行文件下载的如下操作,根据文件标识符找到数据文件的文件名和文件物理存放位置以及用户定义的分类规则,并且将文件流写入Response响应流中,然后更改Http报文头中的字段,使用标准的Content-Disposition字段表明响应流的类型为附件类型,且文件名为数据库中取得到的文件名,增加一个Attachment-CataRule字段,将用户定义的分类规则写入该字段的值中。
8)用户端的专用浏览器获取到响应流,并将用户自定义的总存储文件夹目录与Http报文头中的Attachment-CataRule字段属性解析出的子层级目录进行拼装作为文件的存储目录,再与Content-Disposition中的文件名称进行拼装,得到保存文件的全路径,并采用同步读写方式将响应流,写入该路径的文件。
9)ASP.NET页面处理程序根据数据库内容生成错误信息报文,具体操作如下,将请求中包含的文件id在数据库中得到其文件名和通过用户定义的分类规则得到的子层级目录,并组装为一个相对路径形式的文件说明信息,写入Respose响应的正文部分,在Http报文头中增加一个Dowload-Error字段,其值为TRUE。
10)用户端的专用浏览器获取到响应流,根据Http报文头中的Dowload-Error字段得知此响应为下载错误响应,将此报文的正文部分写入错误日志文本文件中。
11)如果步骤5开始的遍历未完成,则返回步骤5的遍历部分,如果已经完成则结束此批下载。

Claims (5)

1.一种实现文件批量下载的方法,其特征在于,包括如下步骤:
1)用户通过网页浏览模块登录Web应用程序并提交验证信息;
2)登录成功后Web应用程序中返回登录成功页面,同时用户认证模块生成用户标识信息并写入登录成功页面;否则返回1)让用户继续尝试登录验证;
3)用户终端的网页浏览模块获取登录成功页面,网页解析模块获取步骤2所述的用户标识信息;
4)当用户访问带有文件清单的网页时,Web应用程序生成文件标识信息清单,并写入此网页;用户终端的网页浏览模块获取此带有文件清单的网页时,网页解析模块根据文件标识信息清单解析出所有需要下载的文件标识信息;
5)文件提取模块将文件标识信息清单中的一个未处理的文件标识信息和用户标识信息作为请求参数发送给Web应用程序;
6)Web应用程序根据用户标识信息找到对应的用户信息,根据文件标识信息找到对应的文件信息,如果两者都能对应成功,则使用文件权限管理模块判定该文件是否具有被该用户访问的权利,如果有访问权利,则执行第7)步,上述各条件有一项不满足则执行第9)步;
7)Web应用程序的文件输出模块根据第5)步提交的文件标识信息在文件存储系统中寻找物理文件,寻找成功则输出文件,否则转入第9)步;在输出文件时附加客户端存放位置信息和文件标题信息;
8)用户终端的数据提取模块得到数据文件;转入第11)步;
9)Web应用程序返回错误信息;
10)用户终端的数据提取模块获取错误信息;
11)如果文件标识信息清单中的全部文件标识信息都已经被处理,则结束流程,反之则返回第5)步开始继续执行。
2.根据权利要求1所述的实现文件批量下载的方法,其特征在于,所述步骤2)所述将生成的用户标识信息写入登录成功页面,不限于写入响应数据的任何一个位置,但应能被网页解析模块访问。
3.根据权利要求1所述的实现文件批量下载的方法,其特征在于,所述步骤4)将文件标识信息清单写入页面,不限于写入响应数据的任何一个位置,但应能被网页解析模块访问,文件标识信息清单数据格式不限,但应能被网页解析模块解析出单个的文件标识信息清单。
4.根据权利要求1所述的实现文件批量下载的方法,其特征在于,所述步骤4)中,网页加入用户选取功能,使得网页解析模块执行解析时只得到用户想要下载的文件标识信息清单。
5.根据权利要求1所述的实现文件批量下载的方法,其特征在于,所述步骤5)中,若Web应用程序中的用户认证模块规定了用户标识信息的加密方法,则根据该加密方法进行加密后再作为参数提交。
CN201410424530.9A 2014-08-26 2014-08-26 一种实现文件批量下载的系统及方法 Active CN104639599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410424530.9A CN104639599B (zh) 2014-08-26 2014-08-26 一种实现文件批量下载的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410424530.9A CN104639599B (zh) 2014-08-26 2014-08-26 一种实现文件批量下载的系统及方法

Publications (2)

Publication Number Publication Date
CN104639599A CN104639599A (zh) 2015-05-20
CN104639599B true CN104639599B (zh) 2019-02-26

Family

ID=53217904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410424530.9A Active CN104639599B (zh) 2014-08-26 2014-08-26 一种实现文件批量下载的系统及方法

Country Status (1)

Country Link
CN (1) CN104639599B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294422A (zh) * 2015-05-25 2017-01-04 《中国学术期刊(光盘版)》电子杂志社有限公司 一种基于网页的文献批量下载的方法
CN105045770B (zh) * 2015-07-22 2018-03-23 福建福昕软件开发股份有限公司 一种文档新版本自动提醒方法
CN111917807B (zh) * 2019-05-08 2023-04-18 深圳市云趣网络科技股份有限公司 一种安卓系统wap网页调起下载客户端的方法和系统
CN111966392A (zh) * 2020-08-20 2020-11-20 深圳康佳电子科技有限公司 一种智能终端客制化配置方法、智能终端及存储介质
CN112783850B (zh) * 2021-02-09 2023-09-22 珠海豹趣科技有限公司 一种基于usn日志的文件枚举方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079057A (zh) * 2007-03-14 2007-11-28 腾讯科技(深圳)有限公司 一种保存网页中多个链接对象的系统及方法
CN101640692A (zh) * 2008-07-30 2010-02-03 中国网通集团宽带业务应用国家工程实验室有限公司 文件下载服务方法和系统
CN103581731A (zh) * 2012-07-18 2014-02-12 阿里巴巴集团控股有限公司 视频信息获取的方法及客户端、服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079057A (zh) * 2007-03-14 2007-11-28 腾讯科技(深圳)有限公司 一种保存网页中多个链接对象的系统及方法
CN101640692A (zh) * 2008-07-30 2010-02-03 中国网通集团宽带业务应用国家工程实验室有限公司 文件下载服务方法和系统
CN103581731A (zh) * 2012-07-18 2014-02-12 阿里巴巴集团控股有限公司 视频信息获取的方法及客户端、服务器

Also Published As

Publication number Publication date
CN104639599A (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
JP7361165B2 (ja) 分散型台帳を用いて公共のソフトウェアコンポーネント・エコシステムを管理するためのシステムおよび方法
JP6800184B2 (ja) ドキュメント管理及びコラボレーション・システム
US10902016B2 (en) Autonomous interdependent repositories
CN110495132B (zh) 用于在分布式网络节点内生成、上传和执行代码区块的系统和方法
CN104639599B (zh) 一种实现文件批量下载的系统及方法
JP4779444B2 (ja) シングルサインオン実現方法
JP5030654B2 (ja) ロギングとデータ交換同期のセキュアかつ効率的な方法
US8769642B1 (en) Techniques for delegation of access privileges
US8793278B2 (en) System and method for data preservation and retrieval
US8250102B2 (en) Remote storage and management of binary object data
US20230328071A1 (en) Method and device for securely accessing intranet application
Doglio Pro REST API Development with Node. js
CN103036871B (zh) 浏览器应用插件支持装置和方法
US20120290592A1 (en) Federated search apparatus, federated search system, and federated search method
CN110177120A (zh) 一种单点登录的方法、装置及计算机可读存储介质
US10671709B2 (en) Data isolation in distributed hash chains
CN111539775B (zh) 应用程序的管理方法及设备
US20080163191A1 (en) System and method for file transfer management
US9292703B2 (en) Electronic document management method
US9355269B2 (en) Method and system for managing uniquely identifiable bookmarklets
JP5347429B2 (ja) ユニフォームリソースロケータ書換方法及び装置
CN102171645B (zh) 检索系统及其控制方法、检索空间映射服务器装置
CN115943606A (zh) 可编辑区块链
US11403315B2 (en) Reporting and knowledge discovery for databases
CN112632491A (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
GR01 Patent grant
GR01 Patent grant