专利名称:一种上传文件到服务器的方法
技术领域:
本发明涉及通讯技术领域,更具体地说,涉及一种上传文件到服务器的方法。
背景技术:
随着互联网的日益发展,文件传输一直是网络传输的一项重要应用。与ftp协议相比,http协议在文件传输技术上在应用上比前者更加方便、灵活。在现有技术中,利用http协议进行断点续传下载的文件传输技术已被广泛使用,该项技术解决了客户端从服务器端下载文件时,由于网络中断所引起的下载的文件需要重新下载的困扰,随着服务器业务的发展,诸如网络硬盘、个人主页、博客等的相继出现,需要客户端大量的快速的上传文件到服务器端。因此,如何有效的上传文件是提高用户的网络体验的一项重要指标。
发明内容
本发明提供一种上传文件到服务器的方法来解决上述问题。本发明所述的一种上传文件到服务器的方法,其特征在于,所述方法包括如下步骤
1)用户在客户端启动需要上传的文件,向服务器发送所述上传文件的请求命令;
2)所述客户端通过http协议发送请求数据;
3)所述客户端访问所述服务器的php程序,所述php程序将所述上传文件的大小发送给所述客户端;
4)所述客户端根据返回的 所述上传文件的大小,获得本次上传的起始位置,从所述上传的起始位置起开始将所述上传文件打包并将其发送到所述服务器,所述发送过程附带所述上传文件的信息;
5)所述服务器接受所述上传文件及所述附带的上传文件信息,所述服务器定位并打开所述上传文件,所述服务器将读写位置移动到所述上传文件续传的位置,并在该位置保存所述接受的上传文件;
6)在上传过程完成后,所述客户端通知所述服务器,所述服务器检测所述上传文件的完整性之后进彳了保存。优选的是,在步骤I)中,所述请求命令包含所述上传文件的信息,所述上传文件的信息包括文件名称、文件大小、上传的文件目录和用户名称。优选的是,所述上传文件为视频文件时,所述上传文件的信息还包括所述视频文件的md5值的文本信息。优选的是,在步骤2)中,所述客户端通过web服务80端口访问所述服务器。优选的是,在步骤2)中,所述客户端通过get或post方法发送所述请求数据。优选的是,在步骤3)中,所述php程序查询所述上传文件的上传记录,如果没有所述上传文件的上传记录,所述php程序创建所述上传文件的上传记录,如果具有所述上传文件的上传记录,所述Php程序查询所述记录中的所述上传文件的大小。优选的是,以xml文件的形式表示所述上传文件的大小。
优选的是,在步骤4)中,所述上传文件的信息包括文件名称、文件大小、上传的文件目录和用户名称。 优选的是,在步骤4)中,如果所述上传文件为视频文件,所述上传文件的信息还包括所述视频文件的md5值的文本信息。优选的是,在步骤4)中,所述客户端通过post方法发送所述请求数据。优选的是,在步骤5)中,如果网络中断或所述服务器故障中断,所述上传文件需要再次上传时,所述客户端会重新启动所述步骤2)的所述上传过程,重新获得所述上传文件的上传开始位置并发送文件。优选的是,在步骤6)中,如果所述上传文件为视频文件,所述服务器检测所述视频文件的md5值以确认所述视频文件的完整性。与现有技术相比,本发明通过克服上述实际应用中存在的问题,使得文件在上传到服务器的过程中,利用通用form表单multipart/form-data编码方式,自定义确认文件开始打包上传的位置。所述方法为使用http协议form表单提交文件类型的数据提供完整的解决方案,使文件在不良的网络环境下传输时,即使传输到一半传输任务失败,已经上传的文件部分也不会丢失,在下次继续传输的时候可以接着传输余下的文件部分,提高了用户的体验度。
为了使本发明便于理解,现在结合附图描述本发明的具体实施例。图1示出了本发明的上传文件到服务器的方法的一优选实施例的步骤示意图。
具体实施例方式
下面结合附图和优选的实施方式对本发明作进一步详细描述。权利要求中构成要件和实施例中具体实例之间的对应关系可以如下例证。这里的描述意图在于确认在实施例中描述了用来支持在权利要求中陈述的主题的具体实例,由于在实施例中描述了实例,不意味着该具体实例不表示构成要件。相反地,即使在此包含了具体实例作为对应一个构成要件的要素特征,也不意味着该具体实例不表示任何其它构成要件。此外,这里的描述不意味着对应于实施例中陈述的具体实例的所有主题都在权利要求中引用了。换句话说,这里的描述不否认这种实体,即对应实施例包含的具体实例,但不包含在其任何一项权利要求中,即,能够在以后的修正被分案并申请、或增加的可能发明的实体。应当注意的是,“系统”在此意味着由两个或更多设备构成的处理。显而易见地,用户终端可以由个人计算机构成。此外,所述用户终端还可以由例如蜂窝电话、任何其它PDA (个人数字助理)工具、AV (音频视频)装置、诸如家用电气(家庭用电气化)设备的CE (消费电子设备)等构成。“网络”意味着至少连接了两个设备的机构,并且在其中,一条信息能够从一个设备发送到另一个设备。经由网络建立通信的设备可以是彼此分离的,也可以是构成一个机器的内部模块。“通信”可表示无线通信和有线通信。然而,还可以是混合无线和有线通信的通信,更具体地,在某个区段采取无线通信而在另一个区段采取有线通信的通信。同样,它也可以是这样的通信从一个设备向另一设备的通信是有线的,且相反方向的通信是无线的。图1示出了本发明的上传文件到服务器的方法的一优选实施例的步骤示意图。本发明的一优选实施例包含如下步骤
第一,用户在客户端启动需要上传的文件,向服务器发送上传文件的请求命令。其中,所述请求命令包含所述上传文件的信息,所述上传文件的信息包括但不限于文件名称、文件大小、上传的文件目录和用户名称,如果上传文件为视频文件,还包括所述视频文件的md5值的文本信息。第二,所述客户端通过http协议发送请求数据,通过web服务指定端口访问所述服务器,例如,采用get或post方法发送所述请求数据,通过web服务80端口访问服务器。第三,所述客户端访问所述服务器的php程序。所述php程序查询所述上传的文件的上传记录。如果没有所述上传文件的上传记录,所述Php程序创建所述上传文件的上传记录;如果具有所述上传文件的上传记录,则查询该记录中的所述上传文件的大小,并且所述Php程序将所述上传文件的大小发送给所述客户端。其中,可以以xml文件的形式表示所述上传文件的大小。第四,所述客户端根据返回的所述上传文件的大小,获得本次上传的起始位置,从所述上传的起始位置起开始将所述上传文件打包并将其发送到所述服务器,所述发送过程附带所述上传文件的信息,同样地,所述上传文件的信息包括但不限于文件名称、文件大小、上传的文件目录和用户名称,如果所述上传文件为视频文件,还包括所述视频文件的md5值的文本信息。可以通过post方法发送所述请求数据。第五,所述服务器接受所述上传的文件及所述附带的上传文件信息,所述服务器定位并打开所述上传的文件,所述服务器将读写位置移动到所述上传文件续传的位置,并在该位置保存所述接受的上传文件。其中,在上传过程中,如果网络中断或所述服务器故障中断,所述上传文件需要再次上传时,所述客户端会重新启动步骤二的上传过程,并重新获得所述上传文件的上传开始位置发送文件,以确保所述上传文件的准确性。第六,在上传过程完成后,所述客户端会通知所述服务器,所述服务器检测所述上传文件的完整性之后进行保存。例如,针对视频文件,所述服务器检测所述视频文件的md5值以确认所述视频文件的完整性。上述详细描述通过实施例和/或示意图阐明了系统和/或过程的各种实施例。就这些示意图和/或包含一个或多个功能和/或操作而言,本领域技术人员将理解,这些示意图或实施例中的每一个功能和/或操作都可由各种各样的硬件、软件、固件、或实际上其任意组合来单独地和/或共同地实现。应该理解,本文描述的方法可以结合硬件或软件,或在适当时结合两者的组合来实现。因此,本发明的方法,可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即 ,指令)的形式,其中,当程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序可以例如,通过使用API,可重用控件等来实现或利用结合本发明描述的过程。这样的程序优选地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。需要说明的是,本发明的一种上传文件到服务器的方法的方案的范畴包括但不限于上述各部分之间的任意组合。
尽管具体地参考其优选实施例来示出并描述了本发明,但本领域的技术人员可以理解,可以做出形式和细节上的各种改变而不脱离所附权利要求书中所述的本发明的范围。以上结合本发明的具体实施例做了详细描述,但并非是对本发明的限制。凡是依据本发明的技术实质对以上实施例所做的任何简单修改,均仍属于本发明技术方案的范围。
权利要求
1.一种上传文件到服务器的方法,其特征在于,所述方法包括如下步骤 用户在客户端启动需要上传的文件,向服务器发送所述上传文件的请求命令; 所述客户端通过http协议发送请求数据; 所述客户端访问所述服务器的Php程序,所述php程序将所述上传文件的大小发送给所述客户端; 所述客户端根据返回的所述上传文件的大小,获得本次上传的起始位置,从所述上传的起始位置起开始将所述上传文件打包并将其发送到所述服务器,所述发送过程附带所述上传文件的信息; 所述服务器接受所述上传文件及所述附带的上传文件信息,所述服务器定位并打开所述上传文件,所述服务器将读写位置移动到所述上传文件续传的位置,并在该位置保存所述接受的上传文件; 在上传过程完成后,所述客户端通知所述服务器,所述服务器检测所述上传文件的完整性之后进行保存。
2.如权利要求1所述的上传文件到服务器的方法,其特征在于,在步骤I)中,所述请求命令包含所述上传文件的信息,所述上传文件的信息包括文件名称、文件大小、上传的文件目录和用户名称。
3.如权利要求2所述的上传文件到服务器的方法,其特征在于,所述上传文件为视频文件时,所述上传文件的信息还包括所述视频文件的md5值的文本信息。
4.如权利要求1所述的上传文件到服务器的方法,其特征在于,在步骤2)中,所述客户端通过web服务指定端口访问所述服务器。
5.如权利要求1所述的上传文件到服务器的方法,其特征在于,在步骤2)中,所述客户端通过get或post方法发送所述请求数据。
6.如权利要求1所述的上传文件到服务器的方法,其特征在于,在步骤3)中,所述php程序查询所述上传文件的上传记录,如果没有所述上传文件的上传记录,所述Php程序创建所述上传文件的上传记录,如果具有所述上传文件的上传记录,所述Php程序查询所述记录中的所述上传文件的大小。
7.如权利要求6所述的上传文件到服务器的方法,其特征在于,以xml文件的形式表示所述上传文件的大小。
8.如权利要求1所述的上传文件到服务器的方法,其特征在于,在步骤4)中,所述客户端通过post方法发送所述请求数据。
9.如权利要求1所述的上传文件到服务器的方法,其特征在于,在步骤5)中,如果网络中断或所述服务器故障中断,所述上传文件需要再次上传时,所述客户端会重新启动所述步骤2)的所述上传过程,重新获得所述上传文件的上传开始位置并发送文件。
10.如权利要求1所述的上传文件到服务器的方法,其特征在于,在步骤6)中,如果所述上传文件为视频文件,所述服务器检测所述视频文件的md5值以确认所述视频文件的完整性。
全文摘要
本发明提供一种上传文件到服务器的方法。与现有技术相比,本发明通过克服上述实际应用中存在的问题,使得文件在上传到服务器的过程中,利用通用form表单multipart/form-data编码方式,自定义确认文件开始打包上传的位置。所述方法为使用http协议form表单提交文件类型的数据提供完整的解决方案,使文件在不良的网络环境下传输时,即使传输到一半传输任务失败,已经上传的文件部分也不会丢失,在下次继续传输的时候可以接着传输余下的文件部分,提高了用户的体验度。
文档编号H04L29/08GK103067505SQ201210584989
公开日2013年4月24日 申请日期2012年12月30日 优先权日2012年12月30日
发明者李茗, 张树坤 申请人:乐视网信息技术(北京)股份有限公司