一种文件上传下载方法

文档序号:10515748阅读:252来源:国知局
一种文件上传下载方法
【专利摘要】本发明涉及一种文件上传下载方法:当用户通过浏览器页面向Web服务器上传文件或从Web服务器下载文件时,浏览器将文件上传、下载命令通过HTTP传送到用户计算机本地的文件代理程序,由文件代理程序完成文件上传、下载操作处理,包括弹出人机界面供用户选择要上传的本地文件或选择下载的文件在本地的存放位置以及调用本地API在文件上传前、文件下载时对文件进行处理;浏览器将文件上传、下载命令传送到文件代理程序的同时将浏览器与Web服务器间会话的会话标识数据传送给文件代理程序,由文件代理程序按Web服务器约定的浏览器提交会话标识数据的方式将会话标识数据包含在提交给Web服务器的文件上传、下载HTTP请求中。
【专利说明】
一种文件上传下载方法
技术领域
[0001]本发明属于Web信息技术领域,特别是一种在用户使用浏览器上传、下载文件的过程中不通过浏览器插件或控件调用本地API对上传、下载的文件进行处理的方法。
【背景技术】
[0002]人们在使用Web系统的时候,经常需要通过浏览器上传文件、下载文件。若在上传文件、下载文件时,需要调用本地API(比如本地的密码模块)对上传或下载的文件进行处理(比如对上传的文件进行加密和/或数字签名,对下载的文件进行解密和/或签名验证),则浏览器是无法直接做到这点的。通常的做法是由专门开发的浏览器插件(Plug-1n)或控件(如ActiveX)来进行文件上传、文件下载,并在文件上传、下载过程中由插件或控件调用本地API对上传、下载的文件进程处理。这种方案的最大问题是浏览器插件或控件依赖于浏览器的类型,针对一种浏览器开发的插件或控件在另一个浏览器中不能使用,需要针对不同的浏览器开发相应的插件或控件,即这种方案的互操作性差。
[0003]针对此问题,本专利
【申请人】在其专利申请“一种针对浏览器的数据和文件加密方法”(专利申请号:201410427298.4)中提出了相应的解决方案,该方案存在的一个问题是:上传、下载的文件都必须经过浏览器,相当进行了两次文件上载或下载传输,上传文件时,文件从浏览器传输到本地代理程序,然后从本地代理程序再上传到Web服务器,或者下载文件时,文件从Web服务器下载到本地代理程序,然后从本地代理程序再传输到浏览器;这样不但效率低,而且额外占用了系统资源(如内存资源)。

【发明内容】

[0004]本发明的目的是提出一种在用户使用浏览器上传、下载文件过程中不通过浏览器插件或控件就能调用本地API对上传、下载的文件进行处理的方法,以克服现有技术的不足。
[0005]为了实现上述目的,本发明所采用的技术方案是:一种文件上传下载方法,所述方法又包括文件上传方法和文件下载方法。
[0006]文件上传方法具体如下:
[0007]当用户通过点击浏览器页面上的文件上传按钮或指示向Web服务器上传一个文件时,浏览器将文件上传命令、文件上传的目标URL(Uniform Resource Locator,或Universal Resource Locator)以及浏览器与Web服务器之间会话的会话标识数据通过HTTP请求提交到用户计算机本地的文件代理程序;文件代理程序接收到文件上传命令后,弹出一个人机交互界面让用户选择要上传的本地文件;用户通过人机交互界面选择要上传的文件后,文件代理程序读取本地文件,调用本地API对文件进行处理(如对文件进行加密和/或数字签名),然后根据文件上传的目标URL将处理后的文件上传到Web服务器;在上传文件到Web服务器的过程中,文件代理程序按Web服务器约定的浏览器提交会话标识数据的方式将将浏览器与Web服务器之间会话的会话标识数据包含在文件上传HTTP请求中;
[0008]文件下载方法如下:
[0009]当用户点击浏览器页面上的文件下载按钮或链接从Web服务器下载一个文件时,浏览器将文件下载命令、指示文件在Web服务器中位置的URL(Uniform Resource Locator,或Universal Resource Locator)以及浏览器与Web服务器之间会话的会话标识数据通过HTTP请求提交到用户计算机本地的文件代理程序;文件代理程序接收到文件下载命令后,弹出一个人机交互界面让用户选择下载文件在本地的存放位置;在用户通过人机交互界面选择下载文件在本地的存放位置后,文件代理程序向Web服务器提交文件下载HTTP请求,请求中有指示文件在Web服务器中位置的URL以及按Web服务器约定的浏览器提交会话标识数据的方式提交的浏览器与Web服务器之间会话的会话标识数据;文件代理程序接收到从Web服务器下载的文件后,调用本地API对下载传的文件(数据)进行处理(如对文件进行解密和/或数字签名验证),然后将处理后的文件保存在用户通过人机交互界面选择的本地存放位置;
[0010]所述Web服务器是一个Web信息系统或应用系统的服务端系统;
[0011]所述文件代理程序是一个运行在用户计算机本地、在用户通过浏览器上传、下载文件过程中调用本地API对上传、下载的文件进行处理并最终完成文件上传、下载处理的程序;
[0012]所述会话标识数据是包含有Web系统与用户浏览器之间会话的会话标识符(Sess1n ID)及其它会话相关信息的数据;所述其它会话相关信息是用于限定会话的信息。
[0013]若在文件上传、下载处理过程中,浏览器提交给本地文件代理程序的会话标识数据是经Web服务器使用用户的加密密钥加密后的数据,则所述文件代理程序在接收到浏览器提交的加密后的会话标识数据后,使用用户的解密密钥解密获得会话标识数据。
[0014]从以上
【发明内容】
可看到,基于本发明的方法,当用户通过浏览器上传文件时,Web浏览器不直接将文件上传到Web服务器,而是由本地的文件代理程序进行上传操作并在上传操作前调用本地API对文件进行处理;而当用户通过浏览器下载文件时,Web浏览器不直接从Web服务器下载文件,而是由本地的文件代理程序进行下载操作并在文件下载后调用本地API对文件进行处理;基于本发明的方法,当用户通过浏览器上传、下载文件且需要调用本地API对上传、下载的文件进行处理时,浏览器无需使用插件或控件调用本地API,这就大大增加了文件上传、下载Web页面的适用性,不受特定浏览器类型的限制。与专利申请“一种针对浏览器的数据和文件加密方法”(专利申请号:201410427298.4)中的方案不同,在本发明中,上传、下载的文件都不经过浏览器,这样不但提高了文件上传、下载的效率(速度更快),而且减少了对系统资源的占用。
【附图说明】
[0015]图1为本发明的方法示意图。
【具体实施方式】
[0016]下面结合附图对本发明作进一步的描述。
[0017]浏览器与文件代理程序之间的HTTP通信可通过自动HTTP POST、指向本地的页面链接(HTTP GET)、脚本程序实现,包括使用HTML框架(FRAME)、AJAX等;采用脚本程序与本地文件代理程序通过HTTP需要解决跨域脚本(Cross Domain Script)问题。所有这些,在许多的公开资料中有介绍,在互联网中也许多这方面的信息。
[0018]浏览器向本地文件代理程序传递的表述上传或下载文件在Web服务器中位置的URL、浏览器与Web服务器之间会话的会话标识数据、需要调用的本地API指示(如哪个API模块及接口函数名称)及调用本地API的参数等信息可以编码在提交给本地文件代理程序的HTTP请求的URL中,如编码在路径、Query String中,或者放置在提交文件代理程序的FORM数据中,或者放在自定义的HTTP头部中(由脚本生成HTTP请求时)。
[0019]浏览器通过HTTP请求提交给本地文件代理程序的浏览器与Web服务器之间会话的会话标识数据,由浏览器通过脚本程序获得,或者由Web服务器返回到页面代码中(如JavaScrypt代码中)。
[0020]若在文件上传、下载处理过程中,浏览器提交给本地文件代理程序的会话标识数据是经Web服务器使用用户的加密密钥加密后的数据,则加密密钥可以是用户的公钥或者一个对称密钥。
[0021]若Web服务器对会话标识数据加密使用的用户加密密钥是公钥,则用户的解密密钥是对应的私钥,Web服务器通过浏览器通过HTTP请求、响应从用户计算机本地的文件代理程序获得加密密钥(即公钥),而文件代理程序从本地证书库或密码模块获取用户数字证书或公钥,获取过程中文件代理程序通过人机交互界面供用户在可用的数字证书或公钥中选择,比如,显示有私钥的数字证书或公钥供用户选择;或者Web服务器的用户帐户数据中保存有用户的公钥,Web服务器通过用户的帐户信息获得加密密钥(即公钥)
[0022]若Web服务器对会话标识数据加密使用的用户加密密钥是对称密钥,则用户的解密密钥是同样的密钥,Web服务器从用户的帐户数据获得加密密钥,比如从口令导出对称密钥。
[0023]其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
【主权项】
1.一种文件上传方法,其特征在于,该文件上传方法包括以下步骤: 当用户通过点击浏览器页面上的文件上传按钮或指示向Web服务器上传一个文件时,浏览器将文件上传命令、文件上传的目标URL以及浏览器与Web服务器之间会话的会话标识数据通过HTTP请求提交到用户计算机本地的文件代理程序; 文件代理程序接收到文件上传命令后,弹出一个人机交互界面以让用户选择要上传的本地文件; 用户通过人机交互界面选择要上传的文件后,文件代理程序读取本地文件,调用本地API对文件进行处理,然后根据文件上传的目标URL将处理后的文件上传到Web服务器;在上传文件到Web服务器的过程中,文件代理程序按Web服务器约定的浏览器提交会话标识数据的方式将浏览器与Web服务器之间会话的会话标识数据包含在文件上传HTTP请求中。2.根据权利要求1所述的文件上传方法,其特征在于,若在文件上传处理过程中,浏览器提交给本地文件代理程序的会话标识数据是经Web服务器使用用户的加密密钥加密后的数据,则所述文件代理程序在接收到浏览器提交的加密后的会话标识数据后,使用用户的解密密钥解密获得会话标识数据。3.根据权利要求2所述的文件上传方法,其特征在于,若Web服务器对会话标识数据加密使用的用户加密密钥是公钥,则用户的解密密钥是对应的私钥,Web服务器通过浏览器通过HTTP请求、响应从用户计算机本地的文件代理程序获得加密密钥,或者Web服务器通过用户的帐户信息获得加密密钥即公钥。4.根据权利要求2所述的文件上传方法,其特征在于,若Web服务器对会话标识数据加密使用的用户加密密钥是对称密钥,则用户的解密密钥是同样的密钥,Web服务器从用户的帐户数据获得加密密钥。5.一种文件下载方法,其特征在于,该文件下载方法包括以下步骤: 当用户点击浏览器页面上的文件下载按钮或链接从Web服务器下载一个文件时,浏览器将文件下载命令、指示文件在Web服务器中位置的URL以及浏览器与Web服务器之间会话的会话标识数据通过HTTP请求提交到用户计算机本地的文件代理程序; 文件代理程序接收到文件下载命令后,弹出一个人机交互界面以让用户选择下载文件在本地的存放位置; 在用户通过人机交互界面选择下载文件在本地的存放位置后,文件代理程序向Web月艮务器提交文件下载HTTP请求,该文件下载HTTP请求中包含指示文件在Web服务器中位置的URL以及按Web服务器约定的浏览器提交会话标识数据的方式提交的浏览器与Web服务器之间会话的会话标识数据; 文件代理程序接收到从Web服务器下载的文件后,调用本地API对下载传的文件进行处理,然后将处理后的文件保存在用户通过人机交互界面选择的本地存放位置。6.根据权利要求5所述的文件下载方法,其特征是: 若在文件下载处理过程中,浏览器提交给本地文件代理程序的会话标识数据是经Web服务器使用用户的加密密钥加密后的数据,则所述文件代理程序在接收到浏览器提交的加密后的会话标识数据后,使用用户的解密密钥解密获得会话标识数据。7.根据权利要求6所述的文件上传下载方法,其特征是:若Web服务器对会话标识数据加密使用的用户加密密钥是公钥,则用户的解密密钥是对应的私钥,Web服务器通过浏览器通过HTTP请求、响应从用户计算机本地的文件代理程序获得加密密钥,或者Web服务器通过用户的帐户信息获得加密密钥即公钥。8.根据权利要求6所述的文件上传下载方法,其特征是:若Web服务器对会话标识数据加密使用的用户加密密钥是对称密钥,则用户的解密密钥是同样的密钥,Web服务器从用户的帐户数据获得加密密钥。
【文档编号】H04L29/08GK105872102SQ201610395563
【公开日】2016年8月17日
【申请日】2016年6月6日
【发明人】龙毅宏, 李超
【申请人】武汉理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1