一种文件上传的方法及装置制造方法

文档序号:6492913阅读:110来源:国知局
一种文件上传的方法及装置制造方法
【专利摘要】本发明适用于互联网【技术领域】,提供了一种文件上传的方法及装置,所述方法包括:监听对FileUpload标签的触发信息;在监听到所述触发信息时,启动文件选择器以选择待上传的文件,并保存所选择的文件;监听表单提交的触发信息,所述表单为所述FileUpload标签所在的表单;在监听到所述表单提交的触发信息时,获取所保存的文件,并将所获取的文件编码封装后发送到目标服务器。通过本发明,可有效解决现有Windows?Phone操作系统下的IE控件无法选择和上传图片的问题。
【专利说明】一种文件上传的方法及装置
【技术领域】
[0001]本发明属于互联网【技术领域】,尤其涉及一种WP操作系统下文件上传的方法及装置。
【背景技术】
[0002]如图1所示,现有Windows Phone (WP,例如WP7和WP8等)操作系统下的IE控件无法实现文件上传(FileUpload)标签的图片选择功能,用户点击“浏览(Browse)”按钮时,不能浏览和选择手机上的图片;另外IE控件也没有实现图片提交(Submit)功能,用户在点击“上传图片”按钮时,提交的是空数据,不能将图片上传到目标服务器。

【发明内容】

[0003]本发明实施例的目的在于提供一种文件上传的方法,以解决现有Windows Phone操作系统下的IE控件无法选择和上传图片的问题。
[0004]本发明实施例是这样实现的,一种文件上传的方法,所述方法包括:
[0005]监听对文件上传FileUpload标签的触发信息;
[0006]在监听到所述触发信息时,启动文件选择器以选择待上传的文件,并保存所选择的文件;
[0007]监听表单提交的触发信息,所述表单为所述FileUpload标签所在的表单;
[0008]在监听到所述表单提交的触发信息时,获取所保存的文件,并将所获取的文件编码封装后发送到目标服务器。
[0009]本发明实施例的另一目的在于提供一种文件上传的装置,所述装置包括:
[0010]第一监听单元,用于监听对文件上传FileUpload标签的触发信息;
[0011]文件选择单元,用于在所述第一监听单元监听到所述触发信息时,启动文件选择器以选择待上传的文件,并保存所选择的文件;
[0012]第二监听单元,用于监听表单提交的触发信息,所述表单为所述FileUpload标签所在的表单;
[0013]上传单元,用于在所述第二监听单元监听到所述表单提交的触发信息时,获取所保存的文件,并将所获取的文件编码封装后发送到目标服务器。
[0014]本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过监听对FileUpload标签的触发信息,在监听到所述触发信息时,启动文件选择器以选择待上传的文件,并在监听到所述FileUpload标签所在的表单提交的触发信息时,获取所保存的文件,并将所获取的文件编码封装后发送到目标服务器实现文件的上传。本发明实施例通过执行所述监听事件以及启动文件选择器,可以对用户的点击操作、文件选择操作以及文件上传操作进行响应,从而有效解决现有Windows Phone操作系统下的IE控件无法选择和上传图片的问题。【专利附图】

【附图说明】
[0015]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0016]图1是现有Windows Phone操作系统下IE控件图片上传WEB页面的示例图;
[0017]图2是本发明实施例一提供的文件上传方法的实现流程图;
[0018]图3是本发明实施例一提供的图片选择器的示例图;
[0019]图4是本发明实施例一提供的替换FileUpload标签后WEE页面的示例图;
[0020]图5是本发明实施例四提供的文件上传装置的组成结构图。
【具体实施方式】
[0021]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0022]为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0023]实施例一:
[0024]图2示出了本发明实施例一提供的文件上传方法的实现流程,该方法过程详述如下:
[0025]在步骤S201中,监听对文件上传FileUpload标签的触发信息。
[0026]优选的是,通过JavaScript脚本监听对文件上传FileUpload标签的触发信息。
[0027]在监听前,可以通过IE控件中的注入函数接口(例如InvokeScript函数接口)向所述IE控件打开的WEB页面注入JavaScript脚本。在需要监听时,调用并执行所述JavaScript脚本以监听对文件上传FileUpload标签的触发信息。
[0028]其中,所述对FileUpload标签的触发信息包括用户发出的点击FileUpload标签的指令信息或者根据预设的时间间隔自动触发的启动所述FileUpload标签的信息。
[0029]在步骤S202中,在监听到所述触发信息时,启动文件选择器以选择待上传的文件,并保存所选择的文件。
[0030]在本实施例中,所述待上传的文件可以是用户指定的某个文件或者指定存储路径下的多个文件(如公共文件和浏览器目录下的文件等),所述文件包括图片、音视频文件等。其中,所述文件选择器为Window Phone SDK提供的标准控件,如图3所示。
[0031]在步骤S203中,监听表单提交的触发信息,所述表单为所述FileUpload标签所在的表单。
[0032]优选的是,通过JavaScript脚本监听表单提交的触发信息。
[0033]需要说明的是,所述表单包含有表单标签、表单提交按钮等组成部分。
[0034]在本实施例中,先查找所述FileUpload标签所在的表单(即表单标签为Fi IeUpload标签的表单),再通过JavaScript脚本监听所述Fi IeUpload标签所在表单提交的触发信息。其中,所述表单提交的触发信息包括用户发出的点击表单提交按钮的指令信息或者根据预设的时间间隔自动触发的启动表单提交按钮的信息。[0035]在步骤S204中,在监听到所述表单提交的触发信息时,获取所保存的文件,并将所获取的文件编码封装后发送到目标服务器。
[0036]具体的是,在监听到所述表单提交的触发信息时,获取所保存的文件,按照RFC1867 (Form-based File Upload in HTML)标准协议对所获取的文件进行编码并封装编码后的数据(即对编码后的数据进行打包),并调用IE控件的提交POST方法,通过所述POST方法将所述封装后的数据上传到目标服务器。
[0037]在本实施例中,由于RFC1867标准协议中增加了 boundary分割线,可以将不同的实体数据(例如待上传的文件数据、参数数据等)分割开来,便于读取以及快速的封装。
[0038]优选的是,本实施例在在所述保存所选择的文件的步骤之后,还包括:
[0039]将所述FileUpload标签替换为文本输入框标签和按钮标签,以显示所选择的待上传文件的名称,如图4所示。
[0040]在本实施例中,由于所述FileUpload标签属性为只读属性,所以无法显示待上传文件的名称。本实施例通过调用并执行所注入的JavaScript脚本,将所述FileUpload标签替换成一个文本输入框标签和一个按钮标签,通过所述文本输入框标签来显示待上传文件的名称,通过所述按钮标签打开文件选择对话框以方便用户选择文件。
[0041]下面给出一个应用实例,其具体过程如下:
[0042]1、移动终端(基于Windows Phone操作系统的移动终端)浏览器在接收到用户打开某个WEB页面的请求信息后,通过IE控件展现该WEB页面内容;
[0043]2、浏览器向IE控件注入JavaScript脚本;
[0044]3、IE控件调用并执行所述JavaScript脚本,所述JavaScript脚本在检测到该WEB页面中含有FileUpload标签(〈input type=〃file〃>)时,监听所述FileUpload标签的触发信息;
[0045]4、在接收到用户点击如图1所示的“浏览”按钮时,IE控件通知浏览器用户有选择图片的操作;
[0046]5、浏览器接收到IE控件通知后,启动图片选择器;
[0047]6、接收用户从移动终端本地选择的待上传图片,并通知浏览器;
[0048]7、浏览器接收到图片选择器的通知后,保存所选择图片的信息;
[0049]8、浏览器向IE控件中注入JavaScript脚本;
[0050]9、IE控件调用并执行JavaScript脚本,通过所述JavaScript脚本将所述FileUpload标签替换成一个文本输入框标签和一个按钮标签,并将所选择的图片的名称显示在所述文本输入框标签中,如图4所示;如果用户想修改已选择的图片,继续点击“浏览”按钮,再次启动图片选择器以选择图片;
[0051]10、查找所述Fi IeUpload标签所在的表单,通过所述JavaScript脚本监听该表单提交(Submit)的触发信息;
[0052]11,在接收到用户点击如图4所示的“上传图片”按钮时,触发表单提交操作;
[0053]12,IE控件通知浏览器,浏览器根据文本输入框标签中的图片名称,获取对应的图片,并按照RFC1867标准对所获取的图片进行编码打包;
[0054]13、浏览器调用IE控件的POST方法,通过POST将编码打包后的数据上传到目标服务器;[0055]14、目标服务器向移动终端返回上传结果,移动终端将所述结果显示在IE控件中,完成图片上传。
[0056]实施例二:
[0057]图5示出了本发明实施例二提供的文件上传装置的组成结构,为了便于说明,仅不出了与本发明实施例相关的部分。
[0058]该文件上传装置可以是运行于移动终端内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到所述移动终端中或者运行于所述移动终端的应用系统中。
[0059]该文件上传装置包括第一监听单元51、文件选择单元52、第二监听单元53以及上传单元54。其中,各单元的具体功能如下:
[0060]第一监听单元51,用于监听对文件上传FileUpload标签的触发信息;
[0061]文件选择单元52,用于在所述第一监听单元51监听到所述触发信息时,启动文件选择器以选择待上传的文件,并保存所选择的文件;
[0062]第二监听单元53,用于监听表单提交的触发信息,所述表单为所述FileUpload标签所在的表单;
[0063]上传单元54,用于在所述第二监听单元53监听到所述表单提交的触发信息时,获取所保存的文件,并将所获取的文件编码封装后发送到目标服务器。
[0064]进一步的,所述装置还包括:
[0065]替换单元55,用于在保存所选择的文件的之后,将所述FileUpload标签替换为文本输入框标签和按钮标签,以显示所选择的待上传文件的名称。
[0066]进一步的,所述上传单元54包括:
[0067]编码模块541,用于对所获取的文件进行编码并封装编码后的数据,例如按照RFC1867标准协议对所获取的文件进行编码并封装编码后的数据;
[0068]上传模块542,用于调用IE控件的提交POST方法,通过所述POST方法将所述封装后的数据上传到目标服务器。
[0069]进一步的,所述装置还包括:
[0070]注入单元56,用于向IE控件注入JavaScript脚本,通过调用和执行所述JavaScript脚本实现对FileUpload标签触发信息的监听、表单提交的触发信息的监听以及FileUpload标签的替换。
[0071]在本实施例中,所述对FileUpload标签的触发信息包括用户发出的点击FileUpload标签的指令信息或者根据预设的时间间隔自动触发的启动所述FileUpload标签的信息。所述表单提交的触发信息包括用户发出的点击表单提交按钮的指令信息或者根据预设的时间间隔自动触发的启动表单提交按钮的信息。
[0072]本实施例提供的文件上传装置可以使用在前述对应的文件上传方法,详情参见上述文件上传方法实施例一的相关描述,在此不再赘述。
[0073]本领域普通技术人员可以理解为实施例二所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0074]综上所述,本发明实施例通过在IE控件打开的WEB页面注入JavaScript脚本,通过调用和执行所述JavaScript脚本实现对FileUpload标签触发信息的监听、表单提交触发信息的监听以及FileUpload标签的替换,可以对用户的点击操作进行响应,并可以将选择的文件的名称显示在IE控件中。另外,通过Window Phone SDK提供的文件选择器对文件的选择提供访问接口,方便用户访问移动终端本地的文件,并通过POST方法将用户选择的图片上传到目标服务器,实现文件的上传,满足用户需求。
[0075]本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括R0M/RAM、磁盘、光盘等。
[0076]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属【技术领域】的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
【权利要求】
1.一种文件上传的方法,其特征在于,所述方法包括: 监听对文件上传FileUpload标签的触发信息; 在监听到所述触发信息时,启动文件选择器以选择待上传的文件,并保存所选择的文件; 监听表单提交的触发信息,所述表单为所述FileUpload标签所在的表单; 在监听到所述表单提交的触发信息时,获取所保存的文件,并将所获取的文件编码封装后发送到目标服务器。
2.如权利要求1所述的方法,其特征在于,在所述保存所选择的文件的步骤之后,还包括: 将所述FileUpload标签替换为文本输入框标签和按钮标签,以显示所选择的待上传文件的名称。
3.如权利要求1所述的方法,其特征在于,所述将所获取的文件编码封装后发送到目标服务器具体包括: 对所获取的文件进行编码并封装编码后的数据; 调用IE控件的提交POST方法,通过所述POST方法将所述封装后的数据上传到目标服务器。
4.如权利要求1所述的方法,其特征在于,在所述监听对文件上传FileUpload标签的触发信息的步骤之前,还包括: 向IE控件注入JavaScript脚本,通过调用和执行所述JavaScript脚本实现对FileUpload标签触发信息的监听、表单提交触发信息的监听以及FileUpload标签的替换。
5.如权利要求1至4任一项所述的方法,其特征在于,所述对FileUpload标签的触发信息包括用户发出的点击FileUpload标签的指令信息或者根据预设的时间间隔自动触发的启动所述FileUpload标签的信息;所述表单提交的触发信息包括用户发出的点击提交按钮的指令信息或者根据预设的时间间隔自动触发的启动提交按钮的信息。
6.一种文件上传的装置,其特征在于,所述装置包括: 第一监听单元,用于监听对文件上传FileUpload标签的触发信息; 文件选择单元,用于在所述第一监听单元监听到所述触发信息时,启动文件选择器以选择待上传的文件,并保存所选择的文件; 第二监听单元,用于监听表单提交的触发信息,所述表单为所述FileUpload标签所在的表单; 上传单元,用于在所述第二监听单元监听到所述表单提交的触发信息时,获取所保存的文件,并将所获取的文件编码封装后发送到目标服务器。
7.如权利要求6所述的装置,其特征在于,所述装置还包括: 替换单元,用于在保存所选择的文件的之后,将所述FileUpload标签替换为文本输入框标签和按钮标签,以显示所选择的待上传文件的名称。
8.如权利要求6所述的装置,其特征在于,所述上传单元包括: 编码模块,用于对所获取的文件进行编码并封装编码后的数据; 上传模块,用于调用IE控件的提交POST方法,通过所述POST方法将所述封装后的数据上传到目标服务器。
9.如权利要求6所述的装置,其特征在于,所述装置还包括: 注入单元,用于向IE控件注入JavaScript脚本,通过调用和执行所述JavaScript脚本实现对FileUpload标签触发信息的监听、表单提交触发信息的监听以及FileUpload标签的替换。
10.如权利要求6至9任一项所述的装置,其特征在于,所述对FileUpload标签的触发信息包括用户发出的点击FileUpload标签的指令信息或者根据预设的时间间隔自动触发的启动所述FileUpload标签的信息;所述表单提交的触发信息包括用户发出的点击提交按钮的指令信息或者根据 预设的时间间隔自动触发的启动提交按钮的信息。
【文档编号】G06F3/0481GK103870490SQ201210540190
【公开日】2014年6月18日 申请日期:2012年12月12日 优先权日:2012年12月12日
【发明者】周一民 申请人:腾讯科技(武汉)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1