文件传输处理方法及辅助系统与流程

文档序号:12132730阅读:396来源:国知局
文件传输处理方法及辅助系统与流程

本发明属于Web信息技术领域,特别是针对Web系统的、不采用文件传输方式进行文件上传处理、下载处理的方法及辅助系统。



背景技术:

为了避免在通过浏览器上传、下载文件时使用浏览器插件、控件(如Plug-in、ActiveX)来调用本地API来对上传、下载的文件数据进行处理,本专利申请人及其他人在专利“一种针对浏览器的数据和文件加密方法”(专利申请号:201410427298.4)、“一种文件上传下载方法”(专利申请号:201610395563.4)、“文件上传、下载的方法和装置”(专利申请号:201310731636.9)中提出了相应的解决方案,但这些文件传输及处理方案都存在一些不足。

发明专利“一种针对浏览器的数据和文件加密方法”(专利申请号:201410427298.4)中实际上有两个文件上传方案。一个方案是浏览器先将要上传的文件提交到本地的代理程序,然后由代理程序调用本地API对要上传的文件进行处理后,将文件返回到浏览器,然后由浏览器再提交到Web网站(Web服务器);这种方案存在的问题一是文件上传到Web网站之前,整个文件需要在本地来回传输多次,这样效率低,二是由于代理程序需要将整个文件返回给浏览器,由浏览器提交到Web网站,故这种方式只适合小的文件,且浏览器需通过脚本程序与本地的代理程序进行交互,获得文件。此专利发明的另一个方案是浏览器将要上传的文件连同浏览器与Web网站之间会话的会话标识数据提交到本地的代理程序,然后由代理程序将调用本地API处理后的文件上传到Web网站,并在上传文件时将浏览器与Web网站之间会话的会话标识数据包含在文件上传HTTP请求中;将会话标识数据包含在文件上传HTTP请求中使得Web网站认为代理程序就是用户浏览器;这种方案存在的问题是浏览器要将浏览器与Web网站之间会话的会话标识数据传输给本地的代理程序,这就要求浏览器中的Web页面包含会话标识数据或脚本程序能从Web页面能获得会话标识数据,但是,要求浏览器中的Web页面包含会话标识数据或脚本程序能从Web页面获得会话标识数据这种方案有时可能是用户不期望的(存在一定的安全隐患,比如被木马程序窃取)。

发明专利“一种文件上传下载方法”(专利申请号:201610395563.4)存在的问题主要是,浏览器需要将浏览器与Web服务器之间的会话标识数据提交到本地的文件代理程序,如前所述,这就要求浏览器的中Web页面包含会话标识数据或脚本程序能从Web页面获得会话标识数据,但是,要求浏览器中的Web页面包含或脚本程序能从Web页面能获得会话标识数据这种方案有时可能是用户不期望的(存在一定的安全隐患,比如被木马程序窃取)。

“文件上传、下载的方法和装置”(专利申请号:201310731636.9)中方案存在的问题是,服务端的文件传输服务器(Web服务器)无法知道上传文件服务模块、下载文件服务模块与用户使用的浏览器属于同一个用户、属于同一个会话,因此,需要有额外的技术方案解决这问题,如(上传文件服务模块)“将传输结果反馈至所述上传消息交互模块”、“上传消息交互模块将所述传输结果以及所述待上传文件的上传信息提交至所述服务端,供服务端储存”,“所述待上传文件的上传信息包括待上传文件的上传时间、文件大小以及文件地址”(参见此专利的专利文件)。



技术实现要素:

本发明的目的是提出一种在用户使用浏览器上传、下载文件过程中不通过浏览器插件或控件就能调用本地API对上传、下载的文件进行处理的方法及辅助系统,以克服现有技术的不足。

为了实现上述目的,本发明所采用的技术方案是:不采用文件传输方式的文件传输处理方法及辅助系统,其中,文件传输处理方法又包括文件上传处理方法、文件下载处理方法,具体如下。

所述文件上传处理方法如下:

当用户点击浏览器页面上的文件上传按钮或指示、向Web服务器上传一个文件时,浏览器将文件上传命令通过HTTP请求提交到用户计算机本地的文件上传辅助系统;

文件上传辅助系统接收到文件上传命令后,弹出一个人机交互界面,让用户选择要上传的(用户计算机中的)本地文件(若文件分多块上传,则仅首次读文件数据时弹出窗口);

用户通过人机交互界面选择要上传的文件;

文件上传辅助系统读取(用户计算机中的)本地文件,调用本地API对文件数据进行处理,然后将处理后的文件数据以普通HTTP响应数据的方式通过HTTP响应返回到浏览器;所述普通HTTP响应数据是指以非返回文件方式返回的数据(如HTML页面中的内容或返回页面中的FORM的TEXT类型的INPUT数据);

浏览器接收到文件上传辅助系统以普通HTTP响应数据方式返回的、处理后的文件数据后,以提交普通HTTP请求数据的方式,通过HTTP请求将处理后的文件数据提交到Web服务器;所述普通HTTP请求数据是指在HTTP请求中作为FORM数据提交的、以非文件类型(FILE)数据出现的INPUT数据(如TEXT数据);

所述Web服务器是一个Web应用或信息系统的服务端;所述文件上传辅助系统是用户计算机中的一个协助浏览器完成文件上传处理的软件系统。

在以上所述文件上传处理方法中,若处理后的文件数据需要分成多块上传到Web服务器,则:

文件上传辅助系统每次以普通HTTP响应数据的方式,通过HTTP响应返回一块处理后的文件数据到浏览器,而浏览器以普通HTTP请求数据的方式,通过HTTP请求将接收到的一块处理后的文件数据提交到Web服务器;向Web服务器提交数据后,浏览器再次通过HTTP请求,请求文件上传辅助系统返回下一块处理后的文件数据,文件上传辅助系统再次以普通HTTP响应数据的方式,通过HTTP响应返回下一块处理后的文件数据到浏览器,浏览器再次以普通HTTP请求数据的方式,通过HTTP请求将接收到的下一块处理后的文件数据提交到Web服务器;重复此过程,直到文件处理、上传完毕;Web服务器接收到浏览器以普通HTTP请求数据的方式分次、分块提交的处理后的文件数据后,将接收到的数据合并,形成最后的文件并保存。

所述文件下载处理方法如下:

当用户点击浏览器页面上的文件下载按钮或链接,从Web服务器下载一个文件时,浏览器(以请求返回文件数据或请求返回普通数据的方式)请求Web服务器返回文件;

Web服务器接收到返回文件的请求后,将文件数据以普通HTTP响应数据的方式通过HTTP响应返回到浏览器;所述普通HTTP响应数据是指以非返回文件方式返回的数据(如HTML页面中的内容或返回页面中的FORM的TEXT类型INPUT数据);

浏览器接收到Web服务器以普通HTTP响应数据方式返回的文件数据后,以普通HTTP请求数据的方式,通过HTTP请求将接收到的文件数据提交到用户计算机本地的文件下载辅助系统,请求存储文件数据;所述普通HTTP请求数据是指在HTTP请求中作为FORM数据提交的、以非文件类型(FILE)数据出现的INPUT数据(如TEXT数据);

文件下载辅助系统接收到浏览器以普通HTTP请求数据方式提交的文件数据后,调用本地API对文件数据进行处理,然后将处理后的文件数据作为一个本地文件的文件数据保存到用户计算机本地;在文件下载辅助系统将处理后的文件数据保存到用户计算机本地前,弹出一个人机交互界面让用户选择文件数据保存在本地的位置,即存放文件数据的文件的文件路径(包括文件名)(若文件分多块下载,则仅首次存写文件数据时弹出窗口);

所述Web服务器是一个Web应用或信息系统的服务端;所述文件下载辅助系统是用户计算机中的一个用于协助浏览器完成文件下载处理的软件系统。

在以上所述文件下载处理中,若文件数据需要分成多块从Web服务器返回,则:

Web服务器每次以普通HTTP响应数据的方式,通过HTTP响应返回一块文件数据到浏览器,浏览器以普通HTTP请求数据的方式,通过HTTP请求将接收到的一块文件数据提交到文件下载辅助系统;接收到浏览器以普通HTTP请求数据的方式提交的文件数据后,文件下载辅助系统调用本地API对接收到的文件数据进行处理,然后将处理后的文件数据保存到一个本地文件;在完成向文件下载辅助系统提交一块文件数据后,浏览器再次通过HTTP请求,请求Web服务器返回下一块文件数据,Web服务器再次以普通HTTP响应数据的方式,通过HTTP响应返回下一块文件数据到浏览器,浏览器再次以普通HTTP请求数据的方式,通过HTTP请求将接收到的下一块文件数据提交到文件下载辅助系统,接收到浏览器再次以普通HTTP请求数据的方式提交的下一块文件数据后,文件下载辅助系统再次调用本地API对接收到的文件数据进行处理,然后将处理后的文件数据保存到本地文件;重复此过程,直到文件下载、处理完毕。

与所述文件上传处理方法相对应文件上传辅助系统如下:

所述系统包括通信交互模块、文件上传处理模块和人机交互模块,其中:

通信交互模块:接收用户浏览器通过HTTP请求发送的文件上传指令,调用文件上传处理模块,由文件上传处理模块获取要上传的本地文件以及对要上传的文件进行处理,然后将文件上传处理模块处理后的文件以普通HTTP响应数据的方式返回到用户浏览器,由浏览器上传到Web服务器;

文件上传处理模块:调用人机交互模块获得用户输入或选择的、要上传的文件的文件路径包括文件名,根据用户输入或选择的文件路径,从本地读取要上传的文件,调用本地API对要上传的文件数据处理,然后将处理后的文件数据返回给通信交互模块,由通信交互模块以普通HTTP响应数据的方式通过HTTP响应将处理后的文件数据返回给浏览器;

人机交互模块:通过人机交互界面接收用户输入或选择的、要上传的本地文件的文件路径包括文件名。

在以上所述文件上传辅助系统中,若处理后的文件数据需要分成多块上传到Web服务器,则:

通信交互模块多次接收浏览器提交的文件数据上传请求,并针对每次文件数据上传请求,调用文件上传处理模块进行处理;而文件上传处理模块针对每次文件数据上传请求,读取一块文件数据,调用本地API对读取的一块文件数据进行处理,然后将处理后的一块文件数据返回给通信交互模块,由通信交互模块以普通HTTP响应数据的方式将处理后的一块文件数据给浏览器;最后由浏览器以普通HTTP请求数据的方式提交到Web服务器;重复此过程,直到整个文件上传完毕。

与所述文件下载处理方法相对应文件下载辅助系统如下:

所述系统包括通信交互模块、文件下载处理模块和人机交互模块,其中:

通信交互模块:接收用户浏览器以普通HTTP请求数据方式,通过HTTP请求提交的(由浏览器)从Web服务器下载、获得的文件数据,调用文件下载处理模块,由文件下载处理模块对下载的文件进行处理以及对处理后的文件数据进行存储;

文件下载处理模块:调用人机交互模块获得用户输入或选择的、下载文件的文件存储路径包括文件名;调用本地API对浏览器提交的文件数据处理,根据用户输入或选择的、下载文件的文件存储路径,将处理后的文件数据保存到本地文件;

人机交互模块:通过人机交互界面接收用户输入或选择的、下载文件的文件存储路径包括文件名。

在以上所述文件下载辅助系统中,若文件数据需要分成多块从Web服务器下载,则:

Web服务器分多次将一块块的文件数据以普通HTTP响应数据的方式返回到浏览器,然后由浏览器每次以普通HTTP请求数据的方式将Web服务器返回的每块文件数据提交到所述文件下载处理辅助系统的通信交互模块;通信交互模块调用文件下载处理模块将接收到的每块文件数据交由文件下载处理模块进行处理;文件下载处理模块调用本地API对通信交互模块提交的每块文件数据进行处理,然后将处理的每块文件数据保存到用户计算机本地的文件中。

从以上发明内容可看到,基于本发明的方法及系统,由于文件数据是最终由浏览器作为普通数据上传或下载的,因此,无需浏览器将其与Web服务器之间的会话标识数据传送给本地的文件处理程序(避免了可能存在的安全隐患);由于在文件传输过程中,无需将整个文件在浏览器和本地文件传输辅助系统之间来回传递,提高了文件传输效率;进一步地,由于文件数据是作为普通数据上传、下载的,故浏览器不使用脚本代码也可实现对处理后的文件数据的上传、下载,这给技术实现带来了更多的灵活性和选择,而且大文件数据可以分成多块多次上传、下载,故这种方案也适合上传、下载大的文件数据。

附图说明

图1为本发明的文件上传处理方法示意图。

图2为本发明的文件下载处理方法示意图。

图3为本发明的文件上传辅助系统结构示意图。

图4为本发明的文件下载辅助系统结构示意图。

具体实施方式

下面结合实施例和附图对本发明作进一步的描述。

实施例1.

本发明的此实施例中,根据Web服务器返回的HTTP响应,浏览器通过HTTP重定向或HTTP自动POST普通表单(FORM)数据(TEXT类型的INPUT数据)的方式,将文件上传命令发给用户计算机本地的文件上传辅助系统,本地的文件上传辅助系统根据用户通过文件上传辅助系统的人机交互界面选择的文件,读取要上传的文件,调用本地API对文件数据进行处理,然后根据文件上传辅助系统返回的HTTP响应,浏览器通过HTTP重定向(将文件数据编码在URL中),或自动POST普通表单(FORM)数据,将处理后的文件数据提交到Web服务器。

若文件很大,需要分成多块数据上传,则浏览器与文件上传辅助系统通过多次交互,由文件上传辅助系统以返回HTTP重定向的方式(将文件数据编码在URL中),或返回HTTP响应的自动POST普通表单(FORM)数据的方式,分次将多块文件数据返回到浏览器,并由浏览器自动提交到Web服务器。

实施例1的文件数据传输交互流程参见图1。

实施例2.

本发明的此实施例中,浏览器脚本程序以异步请求-响应方式,通过HTTP请求将文件上传命令发给用户计算机本地的文件上传辅助系统,本地的文件上传辅助系统根据用户通过文件上传辅助系统的人机交互界面选择的文件,读取要上传的文件,调用本地API对文件数据进行处理,然后以普通HTTP响应的方式(非返回文件的方式)将处理后的文件数据返回给浏览器中的脚本程序,然后由页面中的脚本程序将处理后的数据提交到Web服务器。

若文件很大,需要分成多块数据上传,则浏览器与文件上传辅助系统通过多次交互,由文件上传辅助系统以普通HTTP响应数据的方式(如隐藏FORM表单数据、隐藏页面内容)分次将多块处理后的文件数据返回到浏览器,然后由脚本程序将处理后的数据提交到Web服务器。

实施例2的文件数据传输交互流程参见图1。

实施例3.

本发明的此实施例中,Web服务器以HTTP重定向或返回HTTP自动POST普通表单(FORM)数据(TEXT类型的INPUT数据)的方式,将用户要下载的文件的文件数据,通过浏览器提交到用户计算机本地的文件下载辅助系统,由文件下载辅助系统调用本地API对文件数据进行处理后,将处理后的文件数据保存到用户计算机本地,并把保存结果(成功或失败)返回到浏览器;文件下载辅助系统通过文件下载辅助系统的人机交互界面获得文件在本地的保存位置(文件保存路径)。

若文件很大,需要分成多块数据下载,则Web服务器以HTTP重定向或返回HTTP自动POST普通表单(FORM)数据(TEXT类型的INPUT数据)的方式,多次将多块将要下载的文件的文件数据,通过浏览器(分多次)提交到用户计算机本地的文件下载辅助系统,由文件下载辅助系统调用本地API对文件数据进行处理后,将处理后的文件数据保存到用户计算机本地。

实施例3的文件数据传输交互流程参见图2。

实施例4.

本发明的此实施例中,Web服务器将要下载的文件的文件数据返回到用户浏览器,用户浏览器中的脚本程序以异步请求-响应方式,通过HTTP请求将下载的文件的文件数据发送给用户计算机本地的文件下载辅助系统,由文件下载辅助系统调用本地API对文件数据进行处理后,将处理后的文件数据保存在用户计算机本地,并将保存结果(成功或失败)返回到浏览器;文件下载辅助系统通过文件下载辅助系统的人机交互界面获得文件在用户计算机本地的保存位置(文件保存路径)。

若文件很大,需要分成多块数据下载,则Web服务器多次将多块将要下载的文件的文件数据返回到用户浏览器,由用户浏览器中的脚本程序以异步请求-响应方式,通过HTTP请求,分多次将要下载的文件的文件数据发送给用户计算机本地的文件下载辅助系统,由文件下载辅助系统调用本地API对文件数据进行处理后,将处理后的文件数据保存到用户计算机本地。

实施例4的文件数据传输交互流程参见图2。

以上文件上传、下载过程中,对传输的文件数据要进行Base64编码。

文件上传辅助系统、文件下载辅助系统的开发,可以采用桌面系统的开发技术如C/C++、C#.NET开发,文件上传辅助系统、文件下载辅助系统的结构参见图3、图4。

其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1