CN104978207B - 上传文件的方法和浏览器及系统 - Google Patents
上传文件的方法和浏览器及系统 Download PDFInfo
- Publication number
- CN104978207B CN104978207B CN201410146633.3A CN201410146633A CN104978207B CN 104978207 B CN104978207 B CN 104978207B CN 201410146633 A CN201410146633 A CN 201410146633A CN 104978207 B CN104978207 B CN 104978207B
- Authority
- CN
- China
- Prior art keywords
- file
- script
- url
- readjustment
- link
- 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
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种上传文件的方法,包括以下步骤:通过网页中的form标签获取用户选择的文件,form标签的action属性指向文件服务器上的上传脚本的URL,其target属性指向网页中包含的隐藏的iframe框架,网页从应用服务器上下载;在上传脚本的URL中添加指向上述文件的参数;在iframe框架中打开添加了参数的上传脚本的URL;向文件服务器发送调用上传脚本以及将参数传递给上传脚本的请求,上传脚本用于从浏览器获取参数指向的文件、将文件保存到文件服务器中、并生成文件链接、以及用于重定向到应用服务器的回调脚本并将文件链接传递给回调脚本,回调脚本用于将文件链接保存到应用服务器。上述方法使得浏览器将文件信息上传到不同服务器时不需要跳转页面。此外,还提供一种浏览器。
Description
【技术领域】
本发明涉及网络与计算机技术领域,特别涉及一种上传文件的方法和浏览器,以及涉及一种上传文件的系统。
【背景技术】
通常网站的一些静态文件(如图片等)和静态文件的存储信息(例如用于获取文件的链接地址)是存放在不同的服务器,例如,静态文件存放在文件服务器上,而静态文件在文件服务器上的存储地址(即静态文件的链接地址)则存放于应用服务器。
一般的,用户选择上传的文件并确定上传后,浏览器通过ftp软件将文件上传到文件服务器,文件服务器将文件的链接地址发送给浏览器,浏览器接收到文件的链接地址后,将链接地址发送给应用服务器,进一步的应用服务器保存文件的链接地址,应用服务器向浏览器返回文件是否存储成功的信息,最后浏览器提示文件是否存储成功的信息。
在上述浏览器上传文件的整个过程中,要使得浏览器一直停留在用户上传文件的页面,而不跳转到其它页面,传统技术一般通过在浏览器中安装特定的Flash插件来实现,从而增加了浏览器的软件包数据量以及浏览器运行所占用的资源。
【发明内容】
基于此,有必要提供一种上传文件的方法,可实现将文件信息上传到不同服务器的过程中浏览器不跳转页面,且浏览器不需要安装Flash插件。
一种上传文件的方法,包括以下步骤:
通过网页中的form标签获取用户选择的文件,所述form标签的action属性指向文件服务器上的上传脚本的URL,所述form标签的target属性指向所述网页中包含的隐藏的iframe框架,所述网页从应用服务器上下载;
在所述上传脚本的URL中添加指向所述用户选择的文件的参数;
在所述iframe框架中打开添加了所述参数的上传脚本的URL;
向所述文件服务器发送调用所述上传脚本以及将所述参数传递给所述上传脚本的请求;
所述上传脚本用于从浏览器获取所述参数指向的文件、将获取的文件保存到所述文件服务器中、并根据所述文件在所述文件服务器中的位置生成文件链接、以及用于重定向到所述应用服务器的回调脚本并将所述文件链接传递给所述回调脚本,所述回调脚本用于将所述文件链接保存到所述应用服务器。
在其中一个实施例中,所述方法还包括步骤:
接收所述回调脚本返回的数据,并在所述iframe框架中打开所述回调脚本返回的数据。
在其中一个实施例中,所述回调脚本返回的数据为用于调用javascript脚本的链接,所述链接中包含所述javascript脚本的URL以及作为所述javascript脚本的参数的所述文件链接,所述javascript脚本用于调用所述网页包含的元素更新脚本并将所述文件链接传递给所述元素更新脚本,所述元素更新脚本用于将所述文件链接显示在所述网页中的信息栏中。
此外,还有必要提供一种浏览器,可实现将文件信息上传到不同服务器的过程中浏览器不跳转页面,且浏览器不需要安装Flash插件。一种浏览器,包括:
文件获取模块,用于通过网页中的form标签获取用户选择的文件,所述form标签的action属性指向文件服务器上的上传脚本的URL,所述form标签的target属性指向所述网页中包含的隐藏的iframe框架,所述网页从应用服务器上下载;
URL生成模块,用于在所述上传脚本的URL中添加指向所述用户选择的文件的参数;
URL打开模块,用于在所述iframe框架中打开添加了所述参数的上传脚本的URL;
请求发送模块,用于向所述文件服务器发送调用所述上传脚本以及将所述参数传递给所述上传脚本的请求;
所述上传脚本用于从浏览器获取所述参数指向的文件、将获取的文件保存到所述文件服务器中、并根据所述文件在所述文件服务器中的位置生成文件链接、以及用于重定向到所述应用服务器的回调脚本并将所述文件链接传递给所述回调脚本,所述回调脚本用于将所述文件链接保存到所述应用服务器。
在其中一个实施例中,所述浏览器还包括:
返回数据接收模块,用于接收所述回调脚本返回的数据;
返回数据打开模块,用于在所述iframe框架中打开所述回调脚本返回的数据。
在其中一个实施例中,所述回调脚本返回的数据为用于调用javascript脚本的链接,所述链接中包含所述javascript脚本的URL以及作为所述javascript脚本的参数的所述文件链接,所述javascript脚本用于调用所述网页包含的元素更新脚本并将所述文件链接传递给所述元素更新脚本,所述元素更新脚本用于将所述文件链接显示在所述网页中的信息栏中。
此外,还有必要提供一种上传文件的系统,可实现将文件信息上传到不同服务器的过程中浏览器不跳转页面,且浏览器不需要安装Flash插件。
一种上传文件的系统,包括浏览器、应用服务器和文件服务器,所述浏览器包括文件获取模块、URL生成模块、URL打开模块和请求发送模块,其中:
文件获取模块用于通过网页中的form标签获取用户选择的文件,所述form标签的action属性指向文件服务器上的上传脚本的URL,所述form标签的target属性指向所述网页中包含的隐藏的iframe框架,所述网页从应用服务器上下载;
URL生成模块,用于在所述上传脚本的URL中添加指向所述用户选择的文件的参数;
URL打开模块,用于在所述iframe框架中打开添加了所述参数的上传脚本的URL;
请求发送模块,用于向所述文件服务器发送调用所述上传脚本以及将所述参数传递给所述上传脚本的请求;
所述文件服务器用于通过所述上传脚本从浏览器获取所述参数指向的文件、将获取的文件保存到本地、并根据所述文件在本地的位置生成文件链接、以及通过所述上传脚本重定向到所述应用服务器的回调脚本并将所述文件链接传递给所述回调脚本;
所述应用服务器用于通过所述回调脚本将所述文件链接保存到所述应用服务器。
在其中一个实施例中,所述浏览器还包括文件上传模块;
所述文件服务器通过所述上传脚本从浏览器获取所述参数指向的文件的过程包括:
所述文件服务器通过所述上传脚本向浏览器发送上传参数指向的文件的请求,所述文件上传模块在浏览器接收到该请求后向上传脚本上传参数指向的文件,文件服务器通过上传脚本接收浏览器上传的文件。
在其中一个实施例中,所述浏览器还包括:
返回数据接收模块,用于接收所述回调脚本返回的数据;
返回数据打开模块,用于在所述iframe框架中打开所述回调脚本返回的数据。
在其中一个实施例中,所述回调脚本返回的数据为用于调用javascript脚本的链接,所述链接中包含所述javascript脚本的URL以及作为所述javascript脚本的参数的所述文件链接,所述javascript脚本用于调用所述网页包含的元素更新脚本并将所述文件链接传递给所述元素更新脚本,所述元素更新脚本用于将所述文件链接显示在所述网页中的信息栏中。
上述上传文件的方法和浏览器及上传文件的系统,在文件被保存到文件服务器的过程以及文件链接被保存到应用服务器的过程中,浏览器都在隐藏的iframe框架中打开上传脚本的URL,不需要浏览器跳转页面,从而浏览器将文件信息上传到不同服务器时,即使没有安装Flash插件也不需要跳转页面,从而可减少浏览器的软件包数据量以及减少浏览器运行所占用的资源。
【附图说明】
图1为一个实施例中的上传文件的方法的流程示意图;
图2为一个实施例中的浏览器结构示意图;
图3为另一实施例中的浏览器结构示意图;
图4为一个实施例中的上传文件的方法的流程示意图;
图5为一个实施例中的上传文件的系统的结构示意图。
【具体实施方式】
如图1所示,在一个实施例中,一种上传文件的方法,包括以下步骤:
步骤S102,通过网页中的form标签获取用户选择的文件,form标签的action属性指向文件服务器上的上传脚本的URL,form标签的target属性指向网页中包含的隐藏的iframe框架,网页从应用服务器上下载。
form标签用于为用户输入创建HTML表单。表单能够包含input元素,比如文本字段、复选框、单选框、提交按钮等等。表单还可以包含菜单等元素。表单用于向服务器传输数据。form标签包含多个属性,form的action属性规定向何处发送用户提交的表单数据,action属性值为某一个URL。而form的target属性规定在何处打开作为action属性值的URL。
本发明中,form标签的action属性指向文件服务器上的上传脚本的URL,因此,浏览器将用户通过form标签提交的数据发送给上传脚本,而form标签的target属性指向网页中包含的隐藏的iframe框架,因此,浏览器在隐藏的iframe框架中打开上传脚本的URL。
步骤S104,在上传脚本的URL中添加指向用户选择的文件的参数。
当浏览器获取到用户通过form标签触发的提交数据的指令时,步骤S104可在form标签的action属性值即上传脚本的URL中添加指向用户选择的文件的参数,并进入步骤S106。
步骤S106,在iframe框架中打开添加了指向用户选择的文件的参数的上传脚本的URL。
步骤S108,向文件服务器发送调用上传脚本以及将指向用户选择的文件的参数传递给上传脚本的请求,上传脚本用于从浏览器获取参数指向的文件、将获取的文件保存到文件服务器中、并根据文件在文件服务器中的位置生成文件链接、以及用于重定向到应用服务器的回调脚本并将文件链接传递给回调脚本,回调脚本用于将文件链接保存到应用服务器。
在iframe框架中打开添加了参数的上传脚本的URL,可触发向文件服务器发送调用上传脚本以及将参数传递给上传脚本的请求的操作。文件服务器接收到调用上传脚本以及将参数传递给上传脚本的请求后,即调用上传脚本并将参数传递给上传脚本。上传脚本则从浏览器获取上述参数指向的文件,并将接收的文件保存到文件服务器中。上传脚本从浏览器获取上述参数指向的文件的过程包括:上传脚本向浏览器发送上传参数指向的文件的请求,浏览器接收到请求后向上传脚本上传参数指向的文件,上传脚本接收浏览器上传的文件。
在文件被保存到文件服务器的整个过程,浏览器在隐藏的iframe框架内打开相应的URL,因此,浏览器不需要跳转页面。
进一步的,上传脚本根据文件在文件服务器中的位置生成用于下载文件的文件链接。上传脚本还将文件链接作为参数添加到回调脚本的URL中,并将添加了参数的回调脚本的URL返回给浏览器,浏览器接收到返回的回调脚本的URL后,会在当前打开上传脚本的URL的ifram框架中打开返回的回调脚本的URL,从而触发浏览器向应用服务器发送调用回调脚本以及将文件链接传递给回调脚本的请求。应用服务器接收到调用回调脚本以及将文件链接传递给回调脚本的请求后,则调用回调脚本并将文件链接传递给回调脚本,从而实现重定向到应用服务器的回调脚本并将文件链接传递给回调脚本的操作。
回调脚本被调用并接收到作为参数的文件链接后,将文件链接保存到应用服务器。
在文件链接被保存到应用服务器的整个过程,浏览器在隐藏的iframe框架内打开相应的URL,因此,浏览器也不需要跳转页面。
在一个实施例中,上述上传文件的方法还包括步骤:接收回调脚本返回的数据,并在上述隐藏的iframe框架中打开回调脚本返回的数据。
上述iframe框架是隐藏的用户不可见的,因此,在上述隐藏的iframe框架中打开回调脚本返回的数据,浏览器可不需要跳转页面。
在一个实施例中,回调脚本返回的数据为用于调用javascript脚本的链接,链接中包含javascript脚本的URL以及作为javascript脚本的参数的文件链接,javascript脚本用于调用网页包含的元素更新脚本并将文件链接传递给元素更新脚本,元素更新脚本用于将文件链接显示在网页中的信息栏中。显示在信息栏中的文件链接可提示用户文件上传成功。
如图2所示,在一个实施例中,一种浏览器,包括文件获取模块202、URL生成模块204、URL打开模块206和请求发送模块208,其中:
文件获取模块202用于通过网页中的form标签获取用户选择的文件,form标签的action属性指向文件服务器上的上传脚本的URL,form标签的target属性指向网页中包含的隐藏的iframe框架,网页从应用服务器上下载。
form标签用于为用户输入创建HTML表单。表单能够包含input元素,比如文本字段、复选框、单选框、提交按钮等等。表单还可以包含菜单等元素。表单用于向服务器传输数据。form标签包含多个属性,form的action属性规定向何处发送用户提交的表单数据,action属性值为某一个URL。而form的target属性规定在何处打开作为action属性值的URL。
本发明中,上述form标签的action属性指向文件服务器上的上传脚本的URL,因此,浏览器将用户通过form标签提交的数据发送给上传脚本,而form标签的target属性指向网页中包含的隐藏的iframe框架,因此,浏览器在隐藏的iframe框架中打开上传脚本的URL。
URL生成模块204用于在上传脚本的URL中添加指向用户选择的文件的参数。
具体的,URL生成模块204用于当浏览器获取到用户通过form标签触发的提交数据的指令时,在form标签的action属性值即上传脚本的URL中添加指向用户选择的文件的参数,并启动请求发送模块206执行操作。
URL打开模块206用于在iframe框架中打开添加了指向用户选择的文件的参数的上传脚本的URL。
请求发送模块208用于向文件服务器发送调用上传脚本以及将指向用户选择的文件的参数传递给上传脚本的请求,上传脚本用于从浏览器获取参数指向的文件、将获取的文件保存到文件服务器中、并根据文件在文件服务器中的位置生成文件链接、以及用于重定向到应用服务器的回调脚本并将文件链接传递给回调脚本,回调脚本用于将文件链接保存到应用服务器。
具体的,URL打开模块206在iframe框架中打开添加了参数的上传脚本的URL,可触发请求发送模块208向文件服务器发送调用上传脚本以及将参数传递给上传脚本的请求。文件服务器接收到调用上传脚本以及将参数传递给上传脚本的请求后,即调用上传脚本并将参数传递给上传脚本。上传脚本则从浏览器获取上述参数指向的文件,并将接收的文件保存到文件服务器中。上述浏览器还包括文件上传模块(图中未示出),上传脚本向浏览器发送上传参数指向的文件的请求,文件上传模块在浏览器接收到请求后向上传脚本上传参数指向的文件,上传脚本接收浏览器上传的文件。
在文件被保存到文件服务器的整个过程,浏览器在隐藏的iframe框架内打开相应的URL,因此,浏览器不需要跳转页面。
进一步的,上传脚本根据文件在文件服务器中的位置生成用于下载文件的文件链接。上传脚本还将文件链接作为参数添加到回调脚本的URL中,并将添加了参数的回调脚本的URL返回给浏览器,URL打开模块206还用于在浏览器接收到返回的回调脚本的URL后,在当前打开上传脚本的URL的ifram框架中打开返回的回调脚本的URL,从而触发请求发送模块208向应用服务器发送调用回调脚本以及将文件链接传递给回调脚本的请求。应用服务器接收到调用回调脚本以及将文件链接传递给回调脚本的请求后,则调用回调脚本并将文件链接传递给回调脚本,从而实现重定向到应用服务器的回调脚本并将文件链接传递给回调脚本的操作。
回调脚本被调用并接收到作为参数的文件链接后,将文件链接保存到应用服务器。
在文件链接被保存到应用服务器的整个过程,浏览器在隐藏的iframe框架内打开相应的URL,因此,浏览器也不需要跳转页面。
如图3所示,在一个实施例中,上述浏览器还包括返回数据接收模块302和返回数据打开模块304,其中:
返回数据接收模块302用于接收回调脚本返回的数据,返回数据打开模块304用于在上述隐藏的iframe框架中打开回调脚本返回的数据。
上述iframe框架是隐藏的用户不可见的,因此,在上述隐藏的iframe框架中打开回调脚本返回的数据,浏览器可不需要跳转页面。
在一个实施例中,回调脚本返回的数据为用于调用javascript脚本的链接,链接中包含javascript脚本的URL以及作为javascript脚本的参数的文件链接,javascript脚本用于调用网页包含的元素更新脚本并将文件链接传递给元素更新脚本,元素更新脚本用于将文件链接显示在网页中的信息栏中。显示在信息栏中的文件链接可提示用户文件上传成功。
如图4所示,在一个实施例中,一种上传文件的方法,包括以下步骤:
步骤S402,浏览器通过网页中的form标签获取用户选择的文件,form标签的action属性指向文件服务器上的上传脚本的URL,form标签的target属性指向网页中包含的隐藏的iframe框架,网页从应用服务器上下载。
本发明中,form标签的action属性指向文件服务器上的上传脚本的URL,因此,浏览器将用户通过form标签提交的数据发送给上传脚本,而form标签的target属性指向网页中包含的隐藏的iframe框架,因此,浏览器在隐藏的iframe框架中打开上传脚本的URL。
步骤S404,浏览器在上传脚本的URL中添加指向用户选择的文件的参数。
当浏览器获取到用户通过form标签触发的提交数据的指令时,浏览器可在form标签的action属性值即上传脚本的URL中添加指向用户选择的文件的参数,并进入步骤S306。
步骤S406,浏览器在iframe框架中打开添加了指向用户选择的文件的参数的上传脚本的URL。
步骤S408,浏览器向文件服务器发送调用上传脚本以及将指向用户选择的文件的参数传递给上传脚本的请求。
步骤S410,文件服务器通过上传脚本从浏览器获取参数指向的文件、将获取的文件保存到本地、并根据文件在本地的位置生成文件链接、以及通过上传脚本重定向到应用服务器的回调脚本并将文件链接传递给回调脚本。
文件服务器通过上传脚本从浏览器获取上述参数指向的文件的过程包括:文件服务器通过上传脚本向浏览器发送上传参数指向的文件的请求,浏览器接收到请求后向上传脚本上传参数指向的文件,文件服务器通过上传脚本接收浏览器上传的文件。
在文件被保存到文件服务器的整个过程,浏览器在隐藏的iframe框架内打开相应的URL,因此,浏览器不需要跳转页面。
文件服务器通过上传脚本重定向到应用服务器的回调脚本并将文件链接传递给回调脚本的过程包括:文件服务器通过上传脚本将文件链接作为参数添加到回调脚本的URL中,并将添加了参数的回调脚本的URL返回给浏览器;浏览器接收到返回的回调脚本的URL后,在当前打开上传脚本的URL的ifram框架中打开返回的回调脚本的URL,从而触发浏览器向应用服务器发送调用回调脚本以及将文件链接传递给回调脚本的请求。
步骤S412,应用服务器通过回调脚本将文件链接保存到本地。
应用服务器接收到调用回调脚本以及将文件链接传递给回调脚本的请求后,则调用回调脚本并将文件链接传递给回调脚本,通过回调脚本将文件链接保存到本地。
在文件链接被保存到应用服务器的整个过程,浏览器在隐藏的iframe框架内打开相应的URL,因此,浏览器也不需要跳转页面。
在一个实施例中,上述上传文件的方法还包括步骤:浏览器接收回调脚本返回的数据,并在上述隐藏的iframe框架中打开回调脚本返回的数据。
上述iframe框架是隐藏的用户不可见的,因此,在上述隐藏的iframe框架中打开回调脚本返回的数据,浏览器可不需要跳转页面。
在一个实施例中,回调脚本返回的数据为用于调用javascript脚本的链接,链接中包含javascript脚本的URL以及作为javascript脚本的参数的文件链接,javascript脚本用于调用网页包含的元素更新脚本并将文件链接传递给元素更新脚本,元素更新脚本用于将文件链接显示在网页中的信息栏中。显示在信息栏中的文件链接可提示用户文件上传成功。
如图5所示,在一个实施例中,一种上传文件的系统,包括浏览器520、应用服务器540和文件服务器560,浏览器520包括文件获取模块522、URL生成模块524、URL打开模块526和请求发送模块528,其中:
文件获取模块522用于通过网页中的form标签获取用户选择的文件,form标签的action属性指向文件服务器560上的上传脚本的URL,form标签的target属性指向网页中包含的隐藏的iframe框架,上述网页从应用服务器540上下载。
本发明中,form标签的action属性指向文件服务器560上的上传脚本的URL,因此,浏览器520将用户通过form标签提交的数据发送给上传脚本,而form标签的target属性指向网页中包含的隐藏的iframe框架,因此,浏览器520在隐藏的iframe框架中打开上传脚本的URL。
URL生成模块524用于在上传脚本的URL中添加指向用户选择的文件的参数。
当浏览器获取到用户通过form标签触发的提交数据的指令时,URL生成模块524可在form标签的action属性值即上传脚本的URL中添加指向用户选择的文件的参数,并启动URL打开模块526进行工作。
URL打开模块526用于在iframe框架中打开添加了指向用户选择的文件的参数的上传脚本的URL。
请求发送模块528用于向文件服务器发送调用上传脚本以及将指向用户选择的文件的参数传递给上传脚本的请求。
文件服务器560用于通过上传脚本从浏览器获取参数指向的文件、将获取的文件保存到本地、并根据文件在本地的位置生成文件链接、以及通过上传脚本重定向到应用服务器的回调脚本并将文件链接传递给回调脚本。
具体的,浏览器520还包括文件上传模块(图中未示出),文件服务器560通过上传脚本向浏览器520发送上传参数指向的文件的请求。文件上传模块用于在浏览器520接收到该请求后向上传脚本上传参数指向的文件,文件服务器560通过上传脚本接收浏览器520上传的文件,并通过上传脚本将接收的文件保存到本地。
在文件被保存到文件服务器的整个过程,浏览器520在隐藏的iframe框架内打开相应的URL,因此,浏览器520不需要跳转页面。
进一步的,文件服务器560通过上传脚本根据文件在本地的位置生成文件链接,将文件链接作为参数添加到回调脚本的URL中,并将添加了参数的回调脚本的URL返回给浏览器520。浏览器520接收到返回的回调脚本的URL后,在当前打开上传脚本的URL的ifram框架中打开返回的回调脚本的URL,从而触发浏览器向应用服务器540发送调用回调脚本以及将文件链接传递给回调脚本的请求。
应用服务器540通过回调脚本将文件链接保存到本地。
具体的,应用服务器540接收到调用回调脚本以及将文件链接传递给回调脚本的请求后,则调用回调脚本并将文件链接传递给回调脚本,通过回调脚本将文件链接保存到本地。
在文件链接被保存到应用服务器540的整个过程,浏览器在隐藏的iframe框架内打开相应的URL,因此,浏览器也不需要跳转页面。
在一个实施例中,浏览器520还包括返回数据接收模块和返回数据打开模块(图中未示出),其中:返回数据接收模块用于接收回调脚本返回的数据,返回数据打开模块用于在上述隐藏的iframe框架中打开回调脚本返回的数据。
上述iframe框架是隐藏的用户不可见的,因此,在上述隐藏的iframe框架中打开回调脚本返回的数据,浏览器可不需要跳转页面。
在一个实施例中,回调脚本返回的数据为用于调用javascript脚本的链接,链接中包含javascript脚本的URL以及作为javascript脚本的参数的文件链接,javascript脚本用于调用网页包含的元素更新脚本并将文件链接传递给元素更新脚本,元素更新脚本用于将文件链接显示在网页中的信息栏中。显示在信息栏中的文件链接可提示用户文件上传成功。
上述上传文件的方法和浏览器及上传文件的系统,在文件被保存到文件服务器的过程以及文件链接被保存到应用服务器的过程中,浏览器都在隐藏的iframe框架中打开上传脚本的URL,不需要浏览器跳转页面,从而浏览器将文件信息上传到不同服务器时,即使没有安装Flash插件也不需要跳转页面,从而可减少浏览器的软件包数据量以及减少浏览器运行所占用的资源。
另外,上述上传文件的方法和浏览器及上传文件的系统,将用户选择的文件保存到文件服务器的过程以及将文件链接保存到应用服务器的过程由浏览器与文件服务器以及应用服务器协同完成,不需要用户参与,与此同时浏览器还可与用户进行交互,浏览器不需要在接收到应用服务器返回的文件是否存储成功的信息后再与用户进行交互,从而可提高浏览器的工作效率、缩短响应延时。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (4)
1.一种上传文件的方法,包括以下步骤:
通过网页中的form标签获取用户选择的文件,所述form标签的action属性指向文件服务器上的上传脚本的URL,所述form标签的target属性指向所述网页中包含的隐藏的iframe框架,所述网页从应用服务器上下载;
在所述上传脚本的URL中添加指向所述用户选择的文件的参数;
在所述iframe框架中打开添加了所述参数的上传脚本的URL;
向所述文件服务器发送调用所述上传脚本以及将所述参数传递给所述上传脚本的请求;
所述上传脚本用于从浏览器获取所述参数指向的文件、将获取的文件保存到所述文件服务器中、并根据所述文件在所述文件服务器中的位置生成文件链接、以及用于重定向到所述应用服务器的回调脚本并将所述文件链接传递给所述回调脚本,所述回调脚本用于将所述文件链接保存到所述应用服务器;
接收所述回调脚本返回的数据,并在所述iframe框架中打开所述回调脚本返回的数据;
所述回调脚本返回的数据为用于调用javascript脚本的链接,所述链接中包含所述javascript脚本的URL以及作为所述javascript脚本的参数的所述文件链接,所述javascript脚本用于调用所述网页包含的元素更新脚本并将所述文件链接传递给所述元素更新脚本,所述元素更新脚本用于将所述文件链接显示在所述网页中的信息栏中。
2.一种浏览器,其特征在于,包括:
文件获取模块,用于通过网页中的form标签获取用户选择的文件,所述form标签的action属性指向文件服务器上的上传脚本的URL,所述form标签的target属性指向所述网页中包含的隐藏的iframe框架,所述网页从应用服务器上下载;
URL生成模块,用于在所述上传脚本的URL中添加指向所述用户选择的文件的参数;
URL打开模块,用于在所述iframe框架中打开添加了所述参数的上传脚本的URL;
请求发送模块,用于向所述文件服务器发送调用所述上传脚本以及将所述参数传递给所述上传脚本的请求;
所述上传脚本用于从浏览器获取所述参数指向的文件、将获取的文件保存到所述文件服务器中、并根据所述文件在所述文件服务器中的位置生成文件链接、以及用于重定向到所述应用服务器的回调脚本并将所述文件链接传递给所述回调脚本,所述回调脚本用于将所述文件链接保存到所述应用服务器;
返回数据接收模块,用于接收所述回调脚本返回的数据;
返回数据打开模块,用于在所述iframe框架中打开所述回调脚本返回的数据;
所述回调脚本返回的数据为用于调用javascript脚本的链接,所述链接中包含所述javascript脚本的URL以及作为所述javascript脚本的参数的所述文件链接,所述javascript脚本用于调用所述网页包含的元素更新脚本并将所述文件链接传递给所述元素更新脚本,所述元素更新脚本用于将所述文件链接显示在所述网页中的信息栏中。
3.一种上传文件的系统,其特征在于,包括浏览器、应用服务器和文件服务器,所述浏览器包括文件获取模块、URL生成模块、URL打开模块和请求发送模块,其中:
文件获取模块用于通过网页中的form标签获取用户选择的文件,所述form标签的action属性指向文件服务器上的上传脚本的URL,所述form标签的target属性指向所述网页中包含的隐藏的iframe框架,所述网页从应用服务器上下载;
URL生成模块,用于在所述上传脚本的URL中添加指向所述用户选择的文件的参数;
URL打开模块,用于在所述iframe框架中打开添加了所述参数的上传脚本的URL;
请求发送模块,用于向所述文件服务器发送调用所述上传脚本以及将所述参数传递给所述上传脚本的请求;
所述文件服务器用于通过所述上传脚本从浏览器获取所述参数指向的文件、将获取的文件保存到本地、并根据所述文件在本地的位置生成文件链接、以及通过所述上传脚本重定向到所述应用服务器的回调脚本并将所述文件链接传递给所述回调脚本;
所述应用服务器用于通过所述回调脚本将所述文件链接保存到所述应用服务器;
所述浏览器还包括:
返回数据接收模块,用于接收所述回调脚本返回的数据;
返回数据打开模块,用于在所述iframe框架中打开所述回调脚本返回的数据;
所述回调脚本返回的数据为用于调用javascript脚本的链接,所述链接中包含所述javascript脚本的URL以及作为所述javascript脚本的参数的所述文件链接,所述javascript脚本用于调用所述网页包含的元素更新脚本并将所述文件链接传递给所述元素更新脚本,所述元素更新脚本用于将所述文件链接显示在所述网页中的信息栏中。
4.根据权利要求3所述的上传文件的系统,其特征在于,所述浏览器还包括文件上传模块;
所述文件服务器通过所述上传脚本从浏览器获取所述参数指向的文件的过程包括:
所述文件服务器通过所述上传脚本向浏览器发送上传参数指向的文件的请求,所述文件上传模块在浏览器接收到该请求后向上传脚本上传参数指向的文件,文件服务器通过上传脚本接收浏览器上传的文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410146633.3A CN104978207B (zh) | 2014-04-11 | 2014-04-11 | 上传文件的方法和浏览器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410146633.3A CN104978207B (zh) | 2014-04-11 | 2014-04-11 | 上传文件的方法和浏览器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104978207A CN104978207A (zh) | 2015-10-14 |
CN104978207B true CN104978207B (zh) | 2018-07-06 |
Family
ID=54274745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410146633.3A Active CN104978207B (zh) | 2014-04-11 | 2014-04-11 | 上传文件的方法和浏览器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104978207B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162893A (zh) * | 2015-10-16 | 2015-12-16 | 珠海格力电器股份有限公司 | 视频文件的上传方法、上传系统、访问方法及访问系统 |
CN108664456B (zh) * | 2017-03-31 | 2021-12-03 | 北京京东尚科信息技术有限公司 | 一种动态构造文档中的显示元素的功能的方法 |
CN109688108B (zh) * | 2018-11-20 | 2021-07-06 | 国网浙江省电力有限公司电力科学研究院 | 一种防御文件上传漏洞的安全系统及其实施方法 |
CN110417912B (zh) * | 2019-08-08 | 2022-01-28 | 成都九洲电子信息系统股份有限公司 | 一种文件下载完成后回调的方法 |
CN112532730B (zh) * | 2020-12-01 | 2022-09-20 | 四川虹美智能科技有限公司 | 图片上传系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059804A (zh) * | 2006-04-19 | 2007-10-24 | 台湾睿智资讯股份有限公司 | 提供网页的系统、方法及电脑可读取的媒体 |
CN102346780A (zh) * | 2011-10-18 | 2012-02-08 | 北龙中网(北京)科技有限责任公司 | 网页地址的获取方法和获取装置 |
CN103853712A (zh) * | 2012-11-28 | 2014-06-11 | 金蝶软件(中国)有限公司 | 一种浮动层窗口的显示方法及浏览器 |
CN103888482A (zh) * | 2012-12-19 | 2014-06-25 | 北京融兴通达科技有限公司 | 一种Ajax上传文件的系统及方法 |
-
2014
- 2014-04-11 CN CN201410146633.3A patent/CN104978207B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059804A (zh) * | 2006-04-19 | 2007-10-24 | 台湾睿智资讯股份有限公司 | 提供网页的系统、方法及电脑可读取的媒体 |
CN102346780A (zh) * | 2011-10-18 | 2012-02-08 | 北龙中网(北京)科技有限责任公司 | 网页地址的获取方法和获取装置 |
CN103853712A (zh) * | 2012-11-28 | 2014-06-11 | 金蝶软件(中国)有限公司 | 一种浮动层窗口的显示方法及浏览器 |
CN103888482A (zh) * | 2012-12-19 | 2014-06-25 | 北京融兴通达科技有限公司 | 一种Ajax上传文件的系统及方法 |
Non-Patent Citations (1)
Title |
---|
《iFrame应用实例讲解——页面无需刷新的异步文件上传!》;aibuwan8513;《https://wenku.baidu.com/view/40a8140d581b6bd97f19ea42.html?from=search》;20120113;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104978207A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104978207B (zh) | 上传文件的方法和浏览器及系统 | |
US9715370B2 (en) | Method and system for providing content | |
US20150012614A1 (en) | Efficient delivery of webpages | |
CN105045887B (zh) | 混合模式跨域数据交互的系统及其方法 | |
CN110651252A (zh) | 内容管理系统扩展 | |
CN103024044B (zh) | 网页下载方法及装置 | |
CN104038510B (zh) | iOS系统透明代理的实现方法及系统 | |
CN103118081B (zh) | 预加载浏览器中浏览页面的服务器、客户端、系统和方法 | |
US20150379030A1 (en) | Platform integrating method and system for adapting third-party web page in application | |
CN104063460A (zh) | 一种在浏览器中加载网页的方法和装置 | |
CN103686684A (zh) | 离线缓存的方法及装置 | |
CN102984275A (zh) | 进行网页下载的方法及浏览器 | |
CN103268319A (zh) | 一种基于网页的云浏览器 | |
US9210101B2 (en) | Smart packaging for mobile applications | |
CN107562548A (zh) | 传输数据的方法和装置 | |
CN107533716A (zh) | 用于低带宽通信环境的交互式广告渲染应用 | |
CN110390043A (zh) | 网页邮箱数据的爬取方法、装置、终端和存储介质 | |
CN110221871A (zh) | 网页获取方法、装置、计算机设备及存储介质 | |
CN109240697A (zh) | 调用处理方法及装置、存储介质 | |
CA2846581A1 (en) | Data infrastructure for providing interconnectivity between platforms, devices and operating systems | |
CN103019712A (zh) | 集成应用 | |
CN107229760A (zh) | 存储介质、电子装置、网页内容的显示方法和装置 | |
CN104834534A (zh) | 扩展应用程序功能的方法、装置及系统 | |
CN105786476A (zh) | 移动客户端与服务器之间的数据处理方法及系统 | |
US20050086599A1 (en) | Method and system for maintaining font sizes on different platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161114 Address after: 518000 Guangdong city of Shenzhen province Nanshan District Xili liuxiandong Zhongshan Road No. 1001 TCL Science Park R & D building D3 8 storey building A room 801 unit Applicant after: Shenzhen City, Oriental Boya Technology Co. Ltd. Address before: 518057 Guangdong city of Shenzhen province Nanshan District Zhongshan Road No. 1001 TCL Industrial Park International City building D3 9B-C E Applicant before: Burson Marsteller network game development (Shenzhen) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |