CN103067505A - 一种上传文件到服务器的方法 - Google Patents
一种上传文件到服务器的方法 Download PDFInfo
- Publication number
- CN103067505A CN103067505A CN2012105849896A CN201210584989A CN103067505A CN 103067505 A CN103067505 A CN 103067505A CN 2012105849896 A CN2012105849896 A CN 2012105849896A CN 201210584989 A CN201210584989 A CN 201210584989A CN 103067505 A CN103067505 A CN 103067505A
- Authority
- CN
- China
- Prior art keywords
- file
- server
- upload file
- upload
- client
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种上传文件到服务器的方法。与现有技术相比,本发明通过克服上述实际应用中存在的问题,使得文件在上传到服务器的过程中,利用通用form表单multipart/form-data编码方式,自定义确认文件开始打包上传的位置。所述方法为使用http协议form表单提交文件类型的数据提供完整的解决方案,使文件在不良的网络环境下传输时,即使传输到一半传输任务失败,已经上传的文件部分也不会丢失,在下次继续传输的时候可以接着传输余下的文件部分,提高了用户的体验度。
Description
技术领域
本发明涉及通讯技术领域,更具体地说,涉及一种上传文件到服务器的方法。
背景技术
随着互联网的日益发展,文件传输一直是网络传输的一项重要应用。与ftp协议相比,http协议在文件传输技术上在应用上比前者更加方便、灵活。在现有技术中,利用http协议进行断点续传下载的文件传输技术已被广泛使用,该项技术解决了客户端从服务器端下载文件时,由于网络中断所引起的下载的文件需要重新下载的困扰,随着服务器业务的发展,诸如网络硬盘、个人主页、博客等的相继出现,需要客户端大量的快速的上传文件到服务器端。因此,如何有效的上传文件是提高用户的网络体验的一项重要指标。
发明内容
本发明提供一种上传文件到服务器的方法来解决上述问题。本发明所述的一种上传文件到服务器的方法,其特征在于,所述方法包括如下步骤:
1) 用户在客户端启动需要上传的文件,向服务器发送所述上传文件的请求命令;
2) 所述客户端通过http协议发送请求数据;
3) 所述客户端访问所述服务器的php程序,所述php程序将所述上传文件的大小发送给所述客户端;
4) 所述客户端根据返回的所述上传文件的大小,获得本次上传的起始位置,从所述上传的起始位置起开始将所述上传文件打包并将其发送到所述服务器,所述发送过程附带所述上传文件的信息;
5) 所述服务器接受所述上传文件及所述附带的上传文件信息,所述服务器定位并打开所述上传文件,所述服务器将读写位置移动到所述上传文件续传的位置,并在该位置保存所述接受的上传文件;
6) 在上传过程完成后,所述客户端通知所述服务器,所述服务器检测所述上传文件的完整性之后进行保存。
优选的是,在步骤1)中,所述请求命令包含所述上传文件的信息,所述上传文件的信息包括文件名称、文件大小、上传的文件目录和用户名称。
优选的是,所述上传文件为视频文件时,所述上传文件的信息还包括所述视频文件的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,可重用控件等来实现或利用结合本发明描述的过程。这样的程序优选地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
需要说明的是,本发明的一种上传文件到服务器的方法的方案的范畴包括但不限于上述各部分之间的任意组合。
尽管具体地参考其优选实施例来示出并描述了本发明,但本领域的技术人员可以理解,可以做出形式和细节上的各种改变而不脱离所附权利要求书中所述的本发明的范围。以上结合本发明的具体实施例做了详细描述,但并非是对本发明的限制。凡是依据本发明的技术实质对以上实施例所做的任何简单修改,均仍属于本发明技术方案的范围。
Claims (10)
1.一种上传文件到服务器的方法,其特征在于,所述方法包括如下步骤:
用户在客户端启动需要上传的文件,向服务器发送所述上传文件的请求命令;
所述客户端通过http协议发送请求数据;
所述客户端访问所述服务器的php程序,所述php程序将所述上传文件的大小发送给所述客户端;
所述客户端根据返回的所述上传文件的大小,获得本次上传的起始位置,从所述上传的起始位置起开始将所述上传文件打包并将其发送到所述服务器,所述发送过程附带所述上传文件的信息;
所述服务器接受所述上传文件及所述附带的上传文件信息,所述服务器定位并打开所述上传文件,所述服务器将读写位置移动到所述上传文件续传的位置,并在该位置保存所述接受的上传文件;
在上传过程完成后,所述客户端通知所述服务器,所述服务器检测所述上传文件的完整性之后进行保存。
2.如权利要求1所述的上传文件到服务器的方法,其特征在于,在步骤1)中,所述请求命令包含所述上传文件的信息,所述上传文件的信息包括文件名称、文件大小、上传的文件目录和用户名称。
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值以确认所述视频文件的完整性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105849896A CN103067505A (zh) | 2012-12-30 | 2012-12-30 | 一种上传文件到服务器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105849896A CN103067505A (zh) | 2012-12-30 | 2012-12-30 | 一种上传文件到服务器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103067505A true CN103067505A (zh) | 2013-04-24 |
Family
ID=48109959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105849896A Pending CN103067505A (zh) | 2012-12-30 | 2012-12-30 | 一种上传文件到服务器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103067505A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401914A (zh) * | 2013-07-26 | 2013-11-20 | 浪潮电子信息产业股份有限公司 | 一种文件上传断点续传的方法 |
CN104394183A (zh) * | 2014-07-01 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 文件上传系统、方法及Nginx服务器 |
CN104468843A (zh) * | 2014-12-31 | 2015-03-25 | 浪潮软件股份有限公司 | 一种文件上传方法及装置 |
CN105007333A (zh) * | 2015-08-12 | 2015-10-28 | 阔地教育科技有限公司 | 一种文件传输管理方法及系统 |
WO2015196473A1 (zh) * | 2014-06-27 | 2015-12-30 | 北京新媒传信科技有限公司 | 一种数据发送/接收方法、装置、智能终端及系统 |
CN105227610A (zh) * | 2014-06-30 | 2016-01-06 | 北京金山安全软件有限公司 | 一种文件上传、保存方法及装置 |
CN106358058A (zh) * | 2016-08-31 | 2017-01-25 | 广州易方信息科技有限公司 | 一种上传视频文件并支持断点续传特性的方法及系统 |
CN106453474A (zh) * | 2015-07-17 | 2017-02-22 | 生物辐射实验室股份有限公司 | 在不稳定网络环境中的大文件的网络传输 |
CN106817391A (zh) * | 2015-12-01 | 2017-06-09 | 百度在线网络技术(北京)有限公司 | 文件断点续传方法和装置 |
CN108401012A (zh) * | 2018-01-31 | 2018-08-14 | 山东汇贸电子口岸有限公司 | 一种文件断点续传方法 |
CN112738157A (zh) * | 2020-12-11 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种文件上传方法、系统及设备 |
CN114095493A (zh) * | 2021-11-17 | 2022-02-25 | 兰州乐智教育科技有限责任公司 | 一种基于断点重传的文件上传方法和系统 |
CN114710333A (zh) * | 2022-03-23 | 2022-07-05 | 未鲲(上海)科技服务有限公司 | 数据传输及校验的方法、系统、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174954A (zh) * | 2006-10-31 | 2008-05-07 | 上海高勤通信科技有限公司 | 一种基于互联网超文本传输协议的文件断点上传方法 |
CN101179393A (zh) * | 2006-12-14 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种实现文件断点续传的方法及系统 |
CN102055784A (zh) * | 2009-11-06 | 2011-05-11 | 北大方正集团有限公司 | 富客户端的文件断点续传方法及系统 |
CN102546780A (zh) * | 2011-12-28 | 2012-07-04 | 山东大学 | 一种基于瘦客户端的文件分布式存储的运行方法 |
-
2012
- 2012-12-30 CN CN2012105849896A patent/CN103067505A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174954A (zh) * | 2006-10-31 | 2008-05-07 | 上海高勤通信科技有限公司 | 一种基于互联网超文本传输协议的文件断点上传方法 |
CN101179393A (zh) * | 2006-12-14 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种实现文件断点续传的方法及系统 |
CN102055784A (zh) * | 2009-11-06 | 2011-05-11 | 北大方正集团有限公司 | 富客户端的文件断点续传方法及系统 |
CN102546780A (zh) * | 2011-12-28 | 2012-07-04 | 山东大学 | 一种基于瘦客户端的文件分布式存储的运行方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401914A (zh) * | 2013-07-26 | 2013-11-20 | 浪潮电子信息产业股份有限公司 | 一种文件上传断点续传的方法 |
WO2015196473A1 (zh) * | 2014-06-27 | 2015-12-30 | 北京新媒传信科技有限公司 | 一种数据发送/接收方法、装置、智能终端及系统 |
CN105794148A (zh) * | 2014-06-27 | 2016-07-20 | 北京新媒传信科技有限公司 | 一种数据发送/接收方法、装置、智能终端及系统 |
CN105227610A (zh) * | 2014-06-30 | 2016-01-06 | 北京金山安全软件有限公司 | 一种文件上传、保存方法及装置 |
CN104394183A (zh) * | 2014-07-01 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 文件上传系统、方法及Nginx服务器 |
CN104468843A (zh) * | 2014-12-31 | 2015-03-25 | 浪潮软件股份有限公司 | 一种文件上传方法及装置 |
CN106453474A (zh) * | 2015-07-17 | 2017-02-22 | 生物辐射实验室股份有限公司 | 在不稳定网络环境中的大文件的网络传输 |
CN106453474B (zh) * | 2015-07-17 | 2021-02-05 | 生物辐射实验室股份有限公司 | 在不稳定网络环境中的大文件的网络传输 |
CN105007333A (zh) * | 2015-08-12 | 2015-10-28 | 阔地教育科技有限公司 | 一种文件传输管理方法及系统 |
CN106817391A (zh) * | 2015-12-01 | 2017-06-09 | 百度在线网络技术(北京)有限公司 | 文件断点续传方法和装置 |
CN106358058A (zh) * | 2016-08-31 | 2017-01-25 | 广州易方信息科技有限公司 | 一种上传视频文件并支持断点续传特性的方法及系统 |
CN108401012A (zh) * | 2018-01-31 | 2018-08-14 | 山东汇贸电子口岸有限公司 | 一种文件断点续传方法 |
CN112738157A (zh) * | 2020-12-11 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种文件上传方法、系统及设备 |
CN114095493A (zh) * | 2021-11-17 | 2022-02-25 | 兰州乐智教育科技有限责任公司 | 一种基于断点重传的文件上传方法和系统 |
CN114710333A (zh) * | 2022-03-23 | 2022-07-05 | 未鲲(上海)科技服务有限公司 | 数据传输及校验的方法、系统、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067505A (zh) | 一种上传文件到服务器的方法 | |
CN105446750B (zh) | WebApp启动运行、生成镜像文件的方法和装置 | |
US20160057199A1 (en) | Systems and methods for transmitting a media file in multiple portions | |
US10284671B2 (en) | Dynamic bundling of web components for asynchronous delivery | |
CN111555940B (zh) | 客户端的测试方法、装置、电子设备及计算机可读存储介质 | |
CN103955361A (zh) | 一种web前端代码自动化编译构建的模块化开发和发布系统 | |
CN103593434A (zh) | 应用推荐方法及装置、服务器设备 | |
CN103002011B (zh) | 基于服务器的数据更新方法和服务器 | |
CN103002010A (zh) | 一种基于增量数据的数据更新方法、装置和系统 | |
WO2013100969A1 (en) | Method and apparatus for streaming metadata between devices using javascript and html5 | |
CN103248683A (zh) | 物联网云音乐音箱及其音频数据播放方法 | |
CN102035669B (zh) | 功能调用系统及方法 | |
CN103780685A (zh) | 多样化智能设备间自适应数据共享的方法 | |
CN102567339A (zh) | 一种获取起始页的方法、装置和系统 | |
CN104753989A (zh) | 基于Web-based OS运行环境的屏幕影像传输播放方法及装置 | |
CN106781753A (zh) | 一种适用于不同移动终端的培训系统 | |
EP3506599A1 (en) | Method for synchronizing contact information, apparatus, medium, electronic device and system | |
CN111263220A (zh) | 视频的处理方法、装置、电子设备及计算机可读存储介质 | |
CN107566480A (zh) | 移动终端应用的用户活动信息采集方法及装置、存储介质 | |
US20160037509A1 (en) | Techniques to reduce bandwidth usage through multiplexing and compression | |
CN110677443A (zh) | 数据发送和接收方法、发送端、接收端、系统及存储介质 | |
US8499092B2 (en) | Validating download success | |
CN104506616A (zh) | 浏览器客户端发送信息的方法、装置及系统 | |
CN102761780A (zh) | 智能遥控器获取媒体元数据的方法 | |
CN103327026A (zh) | 一种数据更新方法和更新系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130424 |