一种文件上传方法和系统的制作方法

文档序号:7863059阅读:301来源:国知局
专利名称:一种文件上传方法和系统的制作方法
技术领域
本发明涉及计算机应用领域,尤其涉及一种文件上传方法和系统。
背景技术
文件的上传功能在基于B/S的开发模式中非常普遍。它允许客户端向服务器端上传文件,但不论采用何种开发语言,大多都需要客户端用户通过文件上传控件选择要上传的文件后才可实现上传。在云计算技术迅猛发展的今天,数据业务呈现出数据量大、文件操作频繁的趋势,传统的文件上传方式已经不能满足我 们的需求。目前,基于web方式的文件上传主要有两种方式即采用HTTP协议和FTP协议实现,其中首先对采用HTTP协议实现文件上传进行说明在过去的Html中,表单不能实现文件的上传,这多少限制了一些网页的功能。RFC1867规范(即Html中实现基于表单的文件上传)对表单作出了扩展,增加了一个表单元素〈input type = file〉。通过使用这个元素,浏览器会自动生成一个输入框和一个按钮,输入框可供用户填写本地的文件名和路径名,按钮可以让浏览器打开一个文件选择框供用户选择文件。其上传过程如下步骤I、客户端用户选择要上传的文件步骤2、服务器获得一个客户端向服务器发出的数据流步骤3、分析上传的文件格式步骤4、根据分析结果将多个文件依次输出服务器端的目标文件中。其次、采用FTP协议实现多个文件的上传而FTP协议是Internet上用来传送文件的协议,规定了 Internet上文件互相传送的标准。具体实现过程步骤I、与FTP服务器建立连接;步骤2、初始化文件的传输方式,包括ASCII和BINARY两种方式;步骤3、将文件输出到文件输入流中;步骤4、输入流中的数据读入字节数组中;步骤5、字节数组中的数据写入输出流(将数据写入到一个网络链接上)。这样和源文件同名的一个文件就复制到了服务器端。由以上两种方式我们可以看出利用HTTP协议上传文件需要使用文件上传控件,对于不采用文件上传控件的文件上传则无能为力;采用FTP协议实现多个文件的上传比较简单,容易实现。一般是编写的客户端的程序,但服务器端的安全设置会比较复杂。另夕卜,FTP还有以下缺点数据传输模式不合理、工作方式设计不合理、与防火墙工作不协调、密码安全策略不完善和传输效率低等,已经有学者提出文件传输协议(FTP)将会消亡的观点。基于以上分析,如何提供一种自动化文件上传方案是亟待解决的技术问题。其中文件上传控件是指HTML语言中的表单元素〈input type = file〉。

发明内容
本发明提供一种文件上传方法和系统,要解决的技术技术问题是在基于B/S架构的系统中,在不采用文件上传控件的情况下如何实现文件的上传功能为解决上述技术问题,本发明提供了如下技术方案一种文件上传方法,包括在本地未加载用于上传文件的控件时,加载一用于上传文件的ActiveX对象;启用所述ActiveX对象;当获取到待上传的文件后,调用所述ActiveX对象上传文件。·优选的,所述方法还具有如下特点所述ActiveX对象还用于将待上传的文件转换成二进制或16进制的字符流。优选的,所述方法还具有如下特点所述方法还包括获取服务器对ActiveX对象允许上传的文件的配置;所述调用所述ActiveX对象上传文件,包括在得到待上传的文件后,根据预先获取的服务器允许上传的文件,判断所述待上传是否允许上传;仅在允许上传时,将待上传的文件转换成二进制字符流。优选的,所述方法还具有如下特点所述待上传的文件的路径信息是通过如下方式获取的方式一读取预先写入的路径信息;方式二 接收用户输入的路径的信息。—种文件上传系统,包括加载装置,用于在本地未加载用于上传文件的控件时,加载一用于上传文件的ActiveX 对象;启用装置,与所述加载装置相连,用于启用所述ActiveX对象;调用装置,用于当获取到待上传的文件后,调用所述ActiveX对象上传文件。优选的,所述系统还具有如下特点所述ActiveX对象还用于将待上传的文件转换成二进制或16进制的字符流。优选的,所述系统还具有如下特点所述系统还包括获取装置,用于获取服务器对ActiveX对象允许上传的文件的配置;所述调用装置包括判断模块,用于在得到待上传的文件后,根据预先获取的服务器允许上传的文件,判断所述待上传是否允许上传;转换模块,用于仅在允许上传时,将待上传的文件转换成二进制字符流。优选的,所述系统还具有如下特点,所述待上传的文件的路径信息是通过如下方式获取的方式一读取预先写入的路径信息;方式二 接收用户输入的路径的信息。
由于通过ActiveX对象是可以自由加载到浏览器中的,如果加载一能上传文件的ActiveX对象,则在本地未加载用于上传文件的控件时,通过调用该对象就可以实现对文件的上传。进一步的,如果加载ActiveX对象将待上传文件转为二进制或十六进制的字符流,通过传输此字符流实现文件的上传。


图I为本发明提供的文件上传方法实施例的流程示意图;图2为本发明提供的文件上传系统实施例的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。图I为本发明提供的文件上传方法实施例的流程示意图。图I所示方法实施例包括步骤101、在本地未加载用于上传文件的控件时,加载一用于上传文件的ActiveX对象;步骤102、启用所述ActiveX对象;步骤103、当获取到待上传的文件后,调用所述ActiveX对象上传文件。由于通过ActiveX对象是可以自由加载到浏览器中的,如果加载一能上传文件的ActiveX对象,则在在不使用文件上控件的情况下,通过调用该对象就可以实现对文件的上传。与现有技术中传输字符流不同,将文件以二进制字符流进行可选的,在使用ActiveX对象进行文件上传时,为了减少上传的数据量,所述ActiveX对象还用于将待上传的文件转换成二进制或16进制的字符流。考虑到ActiveX对象向服务器上传是客户端自己触发的,如果客户端上传了病毒文件等,会直接影响服务器的正常工作。因此提出如下改进方案所述方法还包括获取服务器对ActiveX对象允许上传的文件的配置;所述调用所述ActiveX对象上传文件,包括在得到待上传的文件后,根据预先获取的服务器允许上传的文件,判断所述待上传是否允许上传;仅在允许上传时,将待上传的文件转换成二进制字符流。其中,所述待上传的文件的路径信息是通过如下方式获取的方式一预先写入的路径信息;例如,在编写ActiveX对象的代码时,在其代码上写入路径信息,在对该ActiveX对象进行执行时,自然会读取到路径信息;方式二 接收用户输入的路径的信息;例如,弹出一个对话窗,让用户在对话框中输入路径信息。
当然,对于服务器而言,与现有技术中相同,接收到文件参数后,将文件参数保存为同格式的同名文件即可,此处不再赘述。本发明提供的方法实施例提供一种基于web方式不依赖文件选择控件的自动化文件上传方法,客户端不需要选择文件选择控件只需要提供客户端文件的绝对路径即可实现文件的自动化上传,方便的实现在不需要用户干预的情况下仅指明文件的绝对路径进行文件上传,或者是多个文件的批量上传。图2为本发明提供的文件上传系统实施例的结构示意图。图2所示系统实施例包括加载装置201,用于在本地未加载用于上传文件的控件时,加载一用于上传文件的ActiveX 对象;启用装置202,与所述加载装置201相连,用于启用所述ActiveX对象;调用装置203,用于当获取到待上传的文件后,调用所述ActiveX对象上传文件。·其中,所述ActiveX对象还用于将待上传的文件转换成二进制或16进制的字符流。可选的,所述系统还包括获取装置,用于获取服务器对ActiveX对象允许上传的文件的配置;所述调用装置203包括判断模块,用于在得到待上传的文件后,根据预先获取的服务器允许上传的文件,判断所述待上传是否允许上传;转换模块,用于仅在允许上传时,将待上传的文件转换成二进制字符流。其中,所述待上传的文件的路径信息是通过如下方式获取的方式一读取预先写入的路径信息;方式二 接收用户输入的路径的信息。由于通过ActiveX对象是可以自由加载到浏览器中的,如果加载一能上传文件的ActiveX对象,则在本地未加载用于上传文件的控件时,通过调用该对象就可以实现对文件的上传。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
权利要求
1.一种文件上传方法,其特征在于,包括 在本地未加载用于上传文件的控件时,加载一用于上传文件的ActiveX对象; 启用所述ActiveX对象; 当获取到待上传的文件后,调用所述ActiveX对象上传文件。
2.根据权利要求I所述的方法,其特征在于,所述ActiveX对象还用于将待上传的文件转换成二进制或16进制的字符流。
3.根据权利要求I所述的方法,其特征在于,所述方法还包括 获取服务器对ActiveX对象允许上传的文件的配置; 所述调用所述ActiveX对象上传文件,包括 在得到待上传的文件后,根据预先获取的服务器允许上传的文件,判断所述待上传是否允许上传; 仅在允许上传时,将待上传的文件转换成二进制字符流。
4.根据权利要求I所述的方法,其特征在于,所述待上传的文件的路径信息是通过如下方式获取的 方式一读取预先写入的路径信息; 方式二 接收用户输入的路径的信息。
5.一种文件上传系统,其特征在于,包括 加载装置,用于在本地未加载用于上传文件的控件时,加载一用于上传文件的ActiveX对象; 启用装置,与所述加载装置相连,用于启用所述ActiveX对象; 调用装置,用于当获取到待上传的文件后,调用所述ActiveX对象上传文件。
6.根据权利要求5所述的系统,其特征在于,所述ActiveX对象还用于将待上传的文件转换成二进制或16进制的字符流。
7.根据权利要求5所述的系统,其特征在于 所述系统还包括 获取装置,用于获取服务器对ActiveX对象允许上传的文件的配置; 所述调用装置包括 判断模块,用于在得到待上传的文件后,根据预先获取的服务器允许上传的文件,判断所述待上传是否允许上传; 转换模块,用于仅在允许上传时,将待上传的文件转换成二进制字符流。
8.根据权利要求5所述的系统,其特征在于,所述待上传的文件的路径信息是通过如下方式获取的 方式一读取预先写入的路径信息; 方式二 接收用户输入的路径的信息。
全文摘要
本发明提供一种文件上传方法和系统。所述方法,包括在本地未加载用于上传文件的控件时,加载一用于上传文件的ActiveX对象;启用所述ActiveX对象;当获取到待上传的文件后,调用所述ActiveX对象上传文件。
文档编号H04L29/08GK102970325SQ20121039474
公开日2013年3月13日 申请日期2012年10月17日 优先权日2012年10月17日
发明者付正全, 刘成平, 刘正伟 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1