文件上传校验方法及装置的制造方法

文档序号:8265904阅读:336来源:国知局
文件上传校验方法及装置的制造方法
【技术领域】
[0001]本发明涉及网络领域,具体而言,涉及文件上传校验方法及装置。
【背景技术】
[0002]文件上传是互联网应用中非常常见。而上传文件大小超出配置大小问题是其中最常见的问题。
[0003]对于上述问题的解决,在相关技术中有一种方法是在客户端进行验证的,在客户端进行验证需要得到客户端进行支持,需要考虑客户端的兼容性问题,例如,对于IE (浏览器)兼容可能存在问题,此时需要用户手动添加插件。对于某些客户端添加插件也是无法解决这个问题的,例如,在IE8中即使用户手动添加插件也是无效的。
[0004]考虑到客户端进行验证所存在的问题,一般情况下不会采用客户端进行验证而是在服务器端进行验证。在相关技术中,采用如下两种方法在服务器端进行验证:方法一:修改配置文件为最大如:9999999...,然后在后台判断文件大小。这种处理方式的缺点:不管后台的判断是否成功,文件都会上传到服务器,当上传资源够大时会浪费服务器资源,而且等待时间过长,影响用户体验。方法二:如果服务器使用了 JAVA,那么可以重写文件上传服务ServletFileUpload的parseRequest,把异常不抛,返回自定义错误信息。这种处理方式的缺点:如果异常不抛出,那么上传文件流就不会停止,就算返回了错误信息,但是文件还是上传到服务器了。
[0005]无论上述两种方法中的哪一种,超过预定大小的文件都会被上传到服务器上,该文件其实是不希望被上传到服务器上的。对于用户而言其只有在文件完全被上传到服务器上之后才知道该文件超过了预定的大小,这延长了用户的等待时间,降低了用户的体验。

【发明内容】

[0006]本发明提供了文件上传校验方法及装置,以至少解决相关技术中文件上传完毕之后才通知用户文件大小超过阈值导致增加用户等待时间的问题。
[0007]根据本发明的一个方面,提供一种文件上传校验方法,包括:接收客户端上传文件;在所述文件上传的过程中对已经上传的文件的大小是否超过阈值进行校验,并获取校验的结果;将所述结果反馈给所述客户端。
[0008]优选地,在所述文件上传的过程中对已经上传的文件的大小是否超过阈值进行校验,并获取所述结果包括:在所述文件上传的过程中校验已经上传的文件的大小是否超过阈值,以得到所述结果;将所述结果存储在数据库中;从所述数据库中获取所述结果。
[0009]优选地,在从所述数据库中获取所述结果之后,所述方法还包括:从所述数据库中删除所述结果。
[0010]优选地,所述方法还包括:在确定已经上传的文件的大小超过所述阈值的情况下,终止所述文件的上传。
[0011]优选地,通过Struts框架的控制器组件在所述文件上传的过程中获取校验已经上传的文件的大小是否超过阈值的结果;通过Ajax将所述结果反馈给所述客户端,所述客户端为网页浏览器。
[0012]根据本发明的另一个方面,还提供了一种文件上传校验装置,包括:接收模块,用于接收客户端上传文件;获取模块,用于在所述文件上传的过程中对已经上传的文件的大小是否超过阈值进行校验,并获取校验的结果;反馈模块,用于将所述结果反馈给所述客户端。
[0013]优选地,所述获取模块还包括:校验单元,用于在所述文件上传的过程中校验已经上传的文件的大小是否超过阈值,以得到所述结果;存储单元,用于将所述结果存储在数据库中;获取单元,用于从所述数据库中获取所述结果。
[0014]优选地,所述装置还包括:删除模块,用于从所述数据库中删除所述结果。
[0015]优选地,所述装置还包括:终止模块,用于在确定已经上传的文件的大小超过所述阈值的情况下,终止所述文件的上传。
[0016]优选地,所述获取模块通过Struts框架的控制器组件实现,所述反馈模块,用于通过Ajax将所述结果反馈给所述客户端,所述客户端为网页浏览器。
[0017]通过本发明,采用了接收客户端上传文件;在所述文件上传的过程中获取校验已经上传的文件的大小是否超过阈值的结果;将所述结果反馈给所述客户端,解决了相关技术中文件上传完毕之后才通知用户文件大小超过阈值导致增加用户等待时间的问题,提高了用户体验。
【附图说明】
[0018]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019]图1是根据本发明实施例的文件上传校验方法的流程图;
[0020]图2是根据本发明实施例的文件上传校验装置的结构图;
[0021]图3是根据本发明实施例的文件上传校验装置接收模块的结构框图;
[0022]图4是根据本发明实施例的文件上传校验装置的优选结构框图;
[0023]图5是根据本发明优选实施例的上传文件及判断文件大小的流程示意图;
[0024]图6是根据本发明优选实施例的一种服务端快速校验客户端上传文件大小的处理方法流程示意图。
【具体实施方式】
[0025]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0026]在本实施例中,提供了一种文件上传校验方法,图1是根据本发明实施例的文件上传校验方法的流程图,如图1所示,该流程包括如下步骤:
[0027]步骤S102,接收客户端上传文件;
[0028]步骤S104,在该文件上传的过程中对已经上传的文件的大小是否超过阈值进行校验,并获取校验的结果;
[0029]步骤S106,将该结果反馈给该客户端。
[0030]通过上述步骤,在文件上传的过程中就对已经上传的文件的大小进行了实时的验证,当已经上传的部分已经超过阈值是可以及时通知客户端,不再需要等到文件全部上传完毕才通知客户端,提高了实时性,从而解决了相关技术中文件上传完毕之后才通知用户文件大小超过阈值导致增加用户等待时间的问题,提高了用户体验。
[0031]对文件上传过程中已经上传的文件进行检测可以是周期性的,例如,每隔预定时长就可以进行一次检测。作为一种优选的实施方式,可以将检测结果保存在数据库中,然后从该数据库中获取该结果。即在步骤S102中,在该文件上传的过程中校验已经上传的文件的大小是否超过阈值,以得到该结果;将该结果存储在数据库中;从该数据库中获取该结果。通过数据库存储的方式可以方便的读取结果,任何需要改结果的服务、进程或者线程均可以去数据库中读取该结果。
[0032]如果将结果均存储在数据库中,可能会导致数据库中的数据存储量不断的增大。可以每隔一段时间就对不需要的检测结果进行清除。在本实施例中,提供了另一种优选的处理方式,在该处理方式中,在从该数据库中获取结果之后,就从该数据库中删除该结果。这种实时删除的方式有利于及时删除今后可能不再需要的数据。
[0033]通过上述步骤,服务器已经能够及时通知客户端其上传的文件的大小已经超过阈值了,客户端可以根据该通知自行停止上传,作为另外一种优选实施方式,服务器端也可以在确定已经上传的文件的大小超过该阈值的情况下,终止该文件的上传。这样的处理方式能够节约服务器资源。
[0034]优选地,上述步骤可以通过Struts框架的控制器组件在该文件上传的过程中获取校验已经上传的文件的大小是否超过阈值的结果;通过Ajax将该结果反馈给该客户端,该客户端为网页浏览器。下面对Stuts和Ajax进行说明。
[0035]Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet /JSP技术,实现了基于Java EE Web应用的Model-View-Controller (MVC)设计模式的应用框架(Web Framework),是MVC经典设计模式中的一个经典产品。在Struts中,已经由一个名为Act1nServlet的Servlet充当控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model )。在MVC的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应Struts里的Act1nForm与Act1n两个需要继承实现超类。在这里,Struts可以与各种标准的数据访问技术结合在一起,包括 Enterprise Java Beans (EJB),JDBC 与 JNDI。在 Struts 的视图(View)端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如Velocity Templates,XSLT等。通过应用Struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Act1n)与映射关系的配置文件(struts-config.xml)中。
[0036]AJAX 即 “Asynchronous JavaScript and XML”(非同步的 JavaScript 與 XML 技術),指的是一套综合了多项技术的浏览器端网页开发技术。Ajax的概念由JesseJamesGarrett所提出。传统的Web应用允许用户端填写表单(form),当送出表单时就向Web伺服器发送一个请求。伺服器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML码往往是相同的。由于每次应用的沟通都需要向伺服器发送请求,应用的回应时间依赖于伺服器的回应时间。这导致了用户界面的回应比本机应用慢得多。与此不同,AJAX应用可以仅向伺服器发送并取回必須的数据,它使用SOAP或其它一些基于XML的页面服务接口(介面),并在客户端采用JavaScript处理来自伺服器的回应。因为在伺服器和浏览器之间交换的数据大量减少(大约只有原来的5%)。结果,我们感觉伺服器回应更快了。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此Web伺服器的负荷也减少了。
[0037]通过Stuts和Ajax来实现上述实施例及优选实施方式可以提
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1