一种文件下载方法、装置和系统的制作方法

文档序号:8322298阅读:288来源:国知局
一种文件下载方法、装置和系统的制作方法
【技术领域】
[0001]本发明涉及网络技术,尤其涉及一种文件下载方法、装置和系统。
【背景技术】
[0002]目前,参见图1所示,通常采用如下技术进行文件下载:客户端的常规浏览器捕捉到下载按钮的点击事件以后,向服务器的下载文件的代理通用网关接口(Common GatewayInterface,CGI)或实现下载功能的超文本预处理器(Hypertext Preprocessor,PHP)文件,如download, php,发送下载请求,代理CGI通过请求CGI向大文件存储平台或架平接口发送文件的唯一标识信息(fiIekey ),在通过验证后代理CGI可以通过请求CGI从大文件存储平台或架平接口获取验证信息(cookie)、域名(domain)和验证码(key),跳转至下载地址来获取文件,所述下载地址由所获取的domain和key组成,并且携带cookie信息。
[0003]在实现过程中,参见图2所示,当客户端通过内嵌于应用的浏览器控件,如网络视图(webview),进行下载文件时,由于webview本身的限制,默认不提供下载机制,客户端侧的系统程序会调用常规浏览器来进行下载。由于cookie信息受浏览器安全机制保护,系统程序只会把所述文件对应的统一资源定位符(Uniform Resource Locator, URL)发送给常规浏览器,不会将cookie信息发送给常规浏览器。导致常规浏览器无法通过服务器的验证,进而导致无法下载文件。

【发明内容】

[0004]有鉴于此,本发明的主要目的在于提供一种文件下载方法、装置和系统,能够保证文件的正常下载。
[0005]为达到上述目的,本发明的技术方案是这样实现的:
[0006]本发明提供一种文件下载方法,所述方法包括:
[0007]客户端根据配置信息判断出当前启用浏览器为第一浏览器时,得到并发送判断结果;
[0008]接收判断结果反馈信息,所述判断结果反馈信息包括头信息,所述头信息为第一浏览器无法识别的文件类型;
[0009]当切换到第二浏览器时,所述第二浏览器根据所述判断结果反馈信息进行文件下载。
[0010]较佳地,所述判断包括:
[0011]判断当前启用浏览器是否支持打开新窗口或标签,当不支持打开新窗口或标签时,判定当前启用浏览器为第一浏览器。
[0012]较佳地,所述判断当前启用浏览器是否支持打开新窗口或标签之前,所述方法还包括:
[0013]判断当前启用浏览器是否支持全屏显示当前网页的指定区域,当支持全屏显示当前网页的指定区域时,判定当前启用浏览器为第二浏览器;
[0014]当不支持全屏显示网页中的指定区域时,执行判断当前启用浏览器是否支持打开新窗口或标签的步骤。
[0015]本发明提供一种文件下载方法,所述方法包括:
[0016]服务器接收判断结果;
[0017]根据判断结果将头信息设置为第一浏览器无法识别的文件类型;
[0018]将所述头信息封装到判断结果反馈信息中并发送所述判断结果反馈信息。
[0019]较佳地,所述第一浏览器无法识别的文件类型为二进制文件或压缩文件。
[0020]较佳地,所述判断结果以参数形式携带在请求消息中。
[0021]本发明提供一种客户端,所述客户端包括:
[0022]处理单元,用于根据配置信息判断出当前启用浏览器为第一浏览器时,得到并发送判断结果;
[0023]第一接收单元,用于接收判断结果反馈信息;
[0024]第二浏览器,用于当切换到第二浏览器时,所述根据判断结果反馈信息发送下载请求和下载参数。
[0025]较佳地,所述处理单元包括第一判断子单元,用于判断当前启用浏览器是否支持打开新窗口或标签,当不支持打开新窗口或标签时,判定当前启用浏览器为第一浏览器。
[0026]较佳地,所述处理单元还包括第二判断子单元,用于判断当前启用浏览器是否支持全屏显示当前网页的指定区域,当支持全屏显示当前网页的指定区域时,判定当前启用浏览器为第二浏览器;
[0027]当不支持全屏显示网页中的指定区域时,通知第一判断子单元执行判断当前启用浏览器是否支持打开新窗口或标签的操作。
[0028]本发明提供一种服务器,所述服务器包括:
[0029]第二接收单元,用于接收判断结果;
[0030]设置单元,用于根据判断结果将头信息设置为第一浏览器无法识别的文件类型;
[0031]发送单元,用于将所述头信息封装到判断结果反馈信息中并发送所述判断结果反馈信息。
[0032]较佳地,所述第一浏览器无法识别的文件类型为二进制文件或压缩文件。
[0033]较佳地,所述判断结果以参数形式携带在请求消息中。
[0034]本发明提供一种文件下载系统,所述文件下载系统前述任一种所述客户端、以及前述任一种所述服务器。
[0035]由上可知,本发明的技术方案包括:客户端根据配置信息判断出当前启用浏览器为第一浏览器时,得到并发送判断结果;接收判断结果反馈信息,所述判断结果反馈信息包括头信息,所述头信息为第一浏览器无法识别的文件类型;当切换到第二浏览器时,所述第二浏览器根据所述判断结果反馈信息进行文件下载。由此,在当前启用浏览器为第一浏览器时,切换到第二浏览器,所述第二浏览器根据接收到的判断结果反馈信息能够正常进行文件下载。
【附图说明】
[0036]图1为现有技术中使用常规浏览器实现文件下载的原理示意图;
[0037]图2为现有技术中使用webview下载文件的原理示意图;
[0038]图3为本发明提供的一种文件下载方法的第一实施例的实现流程图;
[0039]图4为本发明提供的一种文件下载方法实现文件下载的原理示意图;
[0040]图5为本发明提供的一种文件下载方法的第二实施例的实现流程图;
[0041]图6为本发明提供的一种文件下载方法的第三实施例的实现流程图;
[0042]图7为本发明提供的另一种文件下载方法的实施例的实现流程图;
[0043]图8为本发明提供的客户端的实施例的结构示意图;
[0044]图9为本发明提供的服务器的实施例的结构示意图。
【具体实施方式】
[0045]发明提供的一种文件下载方法的第一实施例,如图3所示,所述方法包括:
[0046]步骤301、客户端根据配置信息判断出当前启用浏览器为第一浏览器时,得到并发送判断结果;
[0047]这里,第一浏览器包括内嵌于应用的浏览器控件,例如webview ;
[0048]所述判断结果可以以参数形式携带在请求消息中。在实际应用中,所述判断结果可以携带在超文本传输协议(Hypertext Transfer Protocol, HTTP)请求地址中的查询(query)部分的参数中,当所述参数为I时表示当前启用浏览器为第一浏览器。
[0049]步骤302、客户端接收判断结果反馈信息,所述判断结果反馈信息包括头信息,所述头信息为第一浏览器无法识别的文件类型;
[0050]这里,所述第一浏览器无法识别的文件类型为二进制文件或压缩文件。头信息指的是超文本传输协议(Hypertext transfer protocol, HTTP)包体中的头(header)信息。
[0051]这里,所述判断结果反馈信息可以是服务器向客户端返回的。
[0052]步骤303、当切换到所述第二浏览器时,所述第二浏览器根据所述判断结果反馈信息进行文件下载。
[0053]这里,第二浏览器包括常规浏览器,如Google Chrome浏览器、Opera浏览器;
[0054]第一浏览器无法识别二进制文件或压缩文件,遇到无法识别的文件会在常规浏览器中打开,第二浏览器能够打开二进制文件或压缩文件,并可以直接下载该文件。
[0055]由此,本实施例在当前启用浏览器为第一浏览器时,切换到第二浏览器,所述第二浏览器根据接收到的判断结果反馈信息能够正常进行文件下载。
[0056]下面结合图4对本发明提供的一种文件下载方法实现文件下载的原理进行解释说明,本实施例中第一浏览器为webview。
[0057]当判断出当前启用浏览器为webview时,客户端将HTTP请求地址中的query部分的client设置为1,并将所述HTTP请求地址发送给服务器的download, php。
[0058]download, php在执行的时候,只要捕捉到client为I且来源网址非空,就设置头(header)信息为二进制文件类型。
[0059]由于在跳出到常规浏览器的时候,Client=I依然有效,但是来源网址为空。因此只要download, php判断client=l且来源网址为空,就访问大文件存储平台获得下载文件所需要的信息,所述信息包括cookie、domain和key。
[0060]在跳出到常规浏览器的时候,常规浏览器会保持download, php的访问地址及参数,因此通过常规浏览器能够下载文件。
[0061]这里要说明的是,在当前启用浏览器为常规浏览器时,则不设置header信息。否则常规浏览器会下载download, php,下载到的文件并不是所需文件。
[0062]目前,区分常规浏览器和内嵌于应用的浏览器控件的方式包括:
[0063]一、在html的头部加上能够唯一标识客户端的userAgent字段,比如将HTTP Head里的UserAgent设置为带有MicroMessager的字符串信息作为标识。
[0064]二、在访问入口通过设置url参数来识别。客户端在请求一个URL的时候,带上一个via参数来标识自身是常规浏览器还是webview。
[0065]然而,如果采用以上两种方式,需要webview里的网页和客户端进行约定,因此限制了使用范围。
[0066]因此,本发明提供了一种文件下载方法的第二实施例,本实施例能够不需要设置html头部和url参数就能够正确区分当前启用的浏览器类型,如图5所示,所述方法包括:
[0067]步骤501、客户端判断当前启用浏览器是否支持打开新窗口或标签,当不支持打开新窗口或标签时,判定当前启用浏览器为第一浏览器,得到并发送判断结果;
[0068]步骤502、接收判断结果反馈信息,所述判断结果反馈信息包括头信息,所述头信息为第一浏览器无法识别的文件类型;
[0069]步骤503、当切换到所述第二浏览器时,所述第二浏览器根据所述判断结果反馈信息进行文件下载。
[0070]由此,本实施例通过判断当前启用浏览器是否支持打开新窗口或标签,能够快速、准确判断出当前启用浏览器是否为第一浏览器,进而能够高效的得到判断结果。
[0071]本发明提供的一种文件下载方法的第三实施例,如图6所示,所述方法包括:
[0072]步骤601、客户端判断当前启用浏览器是否支持全屏显示当前网页的指定区域,当不支持全屏显示
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1