CN104394183A - 文件上传***、方法及Nginx服务器 - Google Patents
文件上传***、方法及Nginx服务器 Download PDFInfo
- Publication number
- CN104394183A CN104394183A CN201410308845.7A CN201410308845A CN104394183A CN 104394183 A CN104394183 A CN 104394183A CN 201410308845 A CN201410308845 A CN 201410308845A CN 104394183 A CN104394183 A CN 104394183A
- Authority
- CN
- China
- Prior art keywords
- file
- server
- nginx
- client
- nginx server
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件上传***、方法及Nginx服务器,上述文件上传***包括:Nginx服务器,用于接收来自于客户端上传的文件,在所述文件上传完之后触发PHP后端服务器;所述PHP后端服务器,与所述Nginx服务器相连接,用于将所述文件移动至指定的发布目录下。根据本发明提供的技术方案,使用Nginx服务器的高效处理能力,使客户端在大文件上传中更加稳定,同时基于Nginx服务器对后端PHP处理端口的监听,Nginx在文件上传处理完成后主动触发后端PHP程序进行服务器的业务逻辑的处理,从而使后端服务器的开发更加灵活,处理逻辑更加清晰。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种文件上传***、方法及Nginx服务器。
背景技术
目前,在音视频社交软件中,需要上传大量的文件,例如,图片贴,视频贴,头像,形象照,短信等。
相关技术中,通常采用稳定的Appache文件上传模块执行文件上传。Apache超文本传输协议(Hyper Text Transfer Protocol,简称为HTTP)服务器(简称为Apache)是一个开放源码的网页服务器,可以在大多数计算机操作***中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的应用程序编程接口(ApplicationProgramming Interface,简称为API)扩展,将Perl/Python等解释器编译到服务器中。
然而,文件上传并非Appache的强项,由于Appache在处理文件上传时处理能力不足,造成服务器出现大量的等待线程,进而导致服务器资源浪费。
发明内容
本发明的主要目的在于公开一种文件上传***、方法及Nginx服务器,以至少解决相关技术中由于Appache在处理文件上传时处理能力不足,造成服务器出现大量的等待线程,进而导致服务器资源浪费的问题。
根据本发明的一个方面,提供了一种文件上传***。
根据本发明的文件上传***包括:Nginx服务器,用于接收来自于客户端上传的文件,在上述文件上传完之后触发PHP后端服务器;上述PHP后端服务器,与上述Nginx服务器相连接,用于将上述文件移动至指定的发布目录下。
根据本发明的另一方面,提供了一种Nginx服务器。
根据本发明的Nginx服务器包括:接收模块,用于接收来自于客户端上传的文件;上传模块,用于将接收到的上述文件保存到指定的位置;触发模块,用于在上述文件上传完之后,触发PHP后端服务器将上述文件从上述指定的位置移动至指定的发布目录下。
根据本发明的又一方面,提供了一种文件上传方法。
根据本发明的文件上传方法包括:Nginx服务器接收来自于客户端上传的文件;上述Nginx服务器将接收到的上述文件保存到指定的位置;上述Nginx服务器在上述文件上传完之后,触发PHP后端服务器将上述文件从上述指定的位置移动至指定的发布目录下。
通过本发明,使用Nginx服务器的高效处理能力,使客户端在大文件上传中更加稳定,同时基于Nginx服务器对后端PHP处理端口的监听,Nginx在文件上传处理完成后主动触发后端PHP程序进行服务器的业务逻辑的处理,从而使后端服务器的开发更加灵活,处理逻辑更加清晰。
附图说明
图1是根据本发明实施例的文件上传***的***架构图;
图2是根据本发明优选实施例的文件上传***的信息交互示意图;
图3是根据本发明实施例的Nginx服务器的结构框图;
图4是根据本发明优选实施例的Nginx服务器的结构框图;以及
图5是根据本发明实施例的文件上传方法的流程图。
具体实施方式
下面结合说明书附图对本发明的具体实现方式做一详细描述。
图1是根据本发明实施例的文件上传***的***架构图。如图1所示,该文件上传***包括:Nginx服务器10,用于接收来自于客户端上传的文件,在上述文件上传完之后触发PHP后端服务器;以及上述PHP后端服务器12,与上述Nginx服务器相连接,用于将上述文件移动至指定的发布目录下。
相关技术中,通常采用稳定的Appache文件上传模块执行文件上传,由于Appache在处理文件上传时处理能力不足,造成服务器出现大量的等待线程,进而导致服务器资源浪费。采用图1所示的方法,使用Nginx服务器的高效处理能力,使客户端在大文件上传中更加稳定,同时基于Nginx服务器对后端PHP处理端口的监听,Nginx在文件上传处理完成后主动触发后端PHP程序进行服务器的业务逻辑的处理,从而使后端服务器的开发更加灵活,处理逻辑更加清晰。
其中,上述文件可以为图片贴,视频贴,头像,形象照,短信等。
在优选实施过程中,客户端通过调用Nginx服务器上传组件的配置地址,同时通过GET方式将自定义参数传输给Nginx服务器的上传模块。其中,自定义参数可以参见表1。
表1
客户端将待上传的文件上传到upload_store指令指定的目录下,Nginx服务器通过对接收到的文件长度与客户端上传的自定义参数中文件长度(例如,f_length)进行对比,确定文件是否传完,进一步地,在判断上述文件上传未完成时,还可以执行上述文件的信息摘要算法(MD5)校验。如果判断文件传完,则将该文件移动到由upload_pass指令指定的位置,触发PHP后端服务器,用于将上述文件移动至指定的发布目录下,同时,Nginx服务器的上传模块会将上述自定义参数提交给PHP后端服务器。
优选地,上述***还可以包括:客户端14,与上述Nginx服务器相连接,用于在判断本地上传失败后,向上述Nginx服务器发送文件是否已上传的第一查询指令,并经由上述Nginx服务器接收来自于上述PHP后端服务器返回的文件上传状态信息;上述Nginx服务器10,用于在接收到上述第一查询指令之后,向上述PHP后端服务器发送文件是否存在的第二查询指令,并将来自于上述PHP后端服务器的文件上传状态信息转发给上述客户端;上述PHP后端服务器12,用于在接收到上述第二查询指令后,向上述上述Nginx服务器返回上述文件上传状态信息。其中,上传状态信息可以参见表2。
表2
在优选实施过程中,当客户端对文件的本地上传处于失败状态时,优先调用文件是否已上传接口判断文件是否已上传成功,当服务器返回文件不存在时,客户端调用文件上传流程进行文件上传;当服务器检查到文件已存在,将返回文件上传成功状态给客户端,客户端进入发贴流程。优选地,上述PHP后端服务器,还用于在将上述文件移动至上述发布目录之后,返回发布状态信息;上述Nginx服务器,还用于将来自于上述PHP后端服务器的上述发布状态信息转发至上述客户端。
在优选实施过程中,在PHP后端服务器将上述文件移动至上述发布目录之后,PHP后端服务器返回的发布状态信息会经由Nginx服务器发送至上述客户端。
优选地,上述客户端14,还用于将上述文件分割成多个文件包,并分别上传上述多个文件包;上述PHP后端服务器12,还用于将上述多个文件包进行合并,获取上述文件。
优选实施过程中,可以在客户端将文件进行分段上传,在服务器端开启针对文件断点上传的支持功能,即,将带上传的大文件在客户端分段之后,在服务器端通过PHP后端服务器将分段的文件(多个文件包)进行合并。
以下结合图2进一步描述上述优选实施方式。
图2是根据本发明优选实施例的文件上传***的信息交互示意图。如图2所示,文件上传***的信息交互主要包括以下处理:
步骤S201:客户端判断本地上传是否失败,如果是失败的,则执行步骤S203。
步骤S203:客户端向Nginx服务器发送文件是否已上传的查询指令(即上述第一查询指令)。
步骤S205:Nginx服务器向PHP后端服务器发送文件是否存在的查询指令(即上述第二查询指令)。
步骤S207:PHP后端服务器经过查询,确定文件的上传状态。
步骤S209:PHP后端服务器将文件上传状态信息返回给Nginx服务器。
步骤S211:Nginx服务器将文件上传状态信息转发给客户端。当服务器检查到文件已存在,则上传状态信息指示文件上传成功状态,执行步骤S225,即客户端进入发贴流程。当上传状态信息指示文件不存在时,则执行步骤S213,客户端调用文件上传流程进行文件上传。
步骤S213:客户端向Nginx服务器发送上传文件请求,并执行文件上传操作。
步骤S215:Nginx服务器将接收到的文件长度与上述自定义参数中的文件长度进行对比,判断文件上传是否完成。
步骤S217:Nginx服务器向PHP后端服务器提交后端文件保存指令。
步骤S219:PHP后端服务器将上传的文件移动至指定的发布目录下。
步骤S221:PHP后端服务器向Nginx服务器返回发布状态JSON字符串。
步骤S223:Nginx服务器将发布状态JSON字符串转发给客户端。
步骤S225:客户端向应用逻辑处理服务器请求发布文件;
步骤S227:应用逻辑处理服务器响应客户端,并向客户端返回文件发布状态。
由此可见,通过Nginx服务器的高效处理能力,使客户端在大文件上传中更加稳定,同时基于Nginx对后端PHP处理端口的监听,Nginx在文件上传处理完成后主动触发后端PHP程序进行服务器的业务逻辑的处理,从而使后端服务器的开发更加灵活,处理逻辑更加清晰,在后端处理完成后,将结果通过Nginx服务器转发给客户端,使客户端与服务器完成完整的文件上传、业务处理逻辑,大大提高了服务器的运行效率。
图3是根据本发明实施例的Nginx服务器的结构框图。如图3所示,该Nginx服务器主要包括:接收模块30,用于接收来自于客户端上传的文件;上传模块32,用于将接收到的上述文件保存到指定的位置;触发模块34,用于在上述文件上传完之后,触发PHP后端服务器将上述文件从上述指定的位置移动至指定的发布目录下。
采用图3所示的Nginx服务器,使客户端在大文件上传中更加稳定,同时基于Nginx服务器对后端PHP处理端口的监听,Nginx在文件上传处理完成后主动触发后端PHP程序进行服务器的业务逻辑的处理,从而使后端服务器的开发更加灵活,处理逻辑更加清晰。
优选地,如图4所示,上述上传模块32,还用于接收来自于上述客户端的自定义参数,并传输给上述PHP后端服务器;上述Nginx服务器还可以包括:对比模块36,分别与接收模块30和上传模块32相连接,用于将接收到的文件长度与上述自定义参数中的文件长度进行对比,判断文件上传是否完成。
优选地,如图4所示,上述Nginx服务器还可以包括:检验模块38,用于在判断上述文件上传未完成时,执行上述文件的信息摘要算法(MD5)校验。
图5是根据本发明实施例的文件上传方法的流程图。如图5所示,该文件上传方法包括:
步骤S501:Nginx服务器接收来自于客户端上传的文件;
步骤S503:上述Nginx服务器将接收到的上述文件保存到指定的位置;
步骤S505:上述Nginx服务器在上述文件上传完之后,触发PHP后端服务器将上述文件从上述指定的位置移动至指定的发布目录下。
采用图5所示的方法,使用Nginx服务器的高效处理能力,使客户端在大文件上传中更加稳定,同时基于Nginx服务器对后端PHP处理端口的监听,Nginx在文件上传处理完成后主动触发后端PHP程序进行服务器的业务逻辑的处理,从而使后端服务器的开发更加灵活,处理逻辑更加清晰。
优选地,上述方法还可以包括:在上述客户端判断本地上传失败后,上述Nginx服务器接收来自于上述客户端的发送文件是否已上传的第一查询指令;上述Nginx服务器向上述PHP后端服务器发送文件是否存在的第二查询指令;上述Nginx服务器将来自于上述PHP后端服务器的文件上传状态信息转发给上述客户端。
优选地,在上述Nginx服务器触发PHP后端服务器将上述文件从上述指定的位置移动至指定的发布目录下之前,还可以包括以下处理:上述Nginx服务器接收来自于上述客户端通过GET方式传输的自定义参数;上述Nginx服务器将接收到的文件长度与从上述自定义参数中的文件长度进行对比,判断文件上传是否完成。
优选实施过程中,可以在客户端将文件进行分段上传,在服务器端开启针对文件断点上传的支持功能,即,将带上传的大文件在客户端分段之后,在服务器端通过PHP后端服务器将分段的文件(多个文件包)进行合并。
综上所述,借助本发明提供的上述实施例,使用Nginx服务器的高效处理能力,使客户端在大文件上传中更加稳定,同时针对客户端上传中用户对上传进度的要求及网络的不稳定性,服务器还提供了上传进度的监控及断点续传等功能,从而大大的减少了移动网络的流量使用,同时基于Nginx对后端PHP处理端口的监听,Nginx在文件上传处理完成后主动触发后端PHP程序进行服务器的业务逻辑的处理,从而使后端服务器的开发更加灵活,处理逻辑更加清晰,在后端处理完成后,将结果通过Nginx转发给客户端,使客户端与服务器完成完整的文件上传、业务处理逻辑,大大提高了服务器的运行效率,同比较之下Appache在处理文件上传时处理能力不足而造成服务器出现大量的等待线程而导致服务器资源浪费。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种文件上传***,其特征在于,包括:
Nginx服务器,用于接收来自于客户端上传的文件,在所述文件上传完之后触发PHP后端服务器;
所述PHP后端服务器,与所述Nginx服务器相连接,用于将所述文件移动至指定的发布目录下。
2.根据权利要求1所述的***,其特征在于,
所述***还包括:所述客户端,与所述Nginx服务器相连接,用于在判断本地上传失败后,向所述Nginx服务器发送文件是否已上传的第一查询指令,并经由所述Nginx服务器接收来自于所述PHP后端服务器返回的文件上传状态信息;
所述Nginx服务器,用于在接收到所述第一查询指令之后,向所述PHP后端服务器发送文件是否存在的第二查询指令,并将来自于所述PHP后端服务器的文件上传状态信息转发给所述客户端;
所述PHP后端服务器,用于在接收到所述第二查询指令后,向所述所述Nginx服务器返回所述文件上传状态信息。
3.根据权利要求1所述的***,其特征在于,
所述PHP后端服务器,还用于在将所述文件移动至所述发布目录之后,返回发布状态信息;
所述Nginx服务器,还用于将来自于所述PHP后端服务器的所述发布状态信息转发至所述客户端。
4.根据权利要求1所述的***,其特征在于,
所述客户端,还用于将所述文件分割成多个文件包,并分别上传所述多个文件包;
所述PHP后端服务器,还用于将所述多个文件包进行合并,获取所述文件。
5.一种Nginx服务器,其特征在于,包括:
接收模块,用于接收来自于客户端上传的文件;
上传模块,用于将接收到的所述文件保存到指定的位置;
触发模块,用于在所述文件上传完之后,触发PHP后端服务器将所述文件从所述指定的位置移动至指定的发布目录下。
6.根据权利要求5所述的服务器,其特征在于,
所述上传模块,还用于接收来自于所述客户端的自定义参数,并传输给所述PHP后端服务器;
所述Nginx服务器还包括:
对比模块,用于将接收到的文件长度与所述自定义参数中的文件长度进行对比,判断文件上传是否完成。
7.根据权利要求6所述的服务器,其特征在于,所述Nginx服务器还包括:检验模块,用于在判断所述文件上传未完成时,执行所述文件的信息摘要算法校验。
8.一种文件上传方法,其特征在于,包括:
Nginx服务器接收来自于客户端上传的文件;
所述Nginx服务器将接收到的所述文件保存到指定的位置;
所述Nginx服务器在所述文件上传完之后,触发PHP后端服务器将所述文件从所述指定的位置移动至指定的发布目录下。
9.根据权利要求8所述的方法,其特征在于,还包括:
在所述客户端判断本地上传失败后,所述Nginx服务器接收来自于所述客户端的发送文件是否已上传的第一查询指令;
所述Nginx服务器向所述PHP后端服务器发送文件是否存在的第二查询指令;
所述Nginx服务器将来自于所述PHP后端服务器的文件上传状态信息转发给所述客户端。
10.根据权利要求8所述的方法,其特征在于,在所述Nginx服务器触发PHP后端服务器将所述文件从所述指定的位置移动至指定的发布目录下之前,还包括:
所述Nginx服务器接收来自于所述客户端通过GET方式传输的自定义参数;
所述Nginx服务器将接收到的文件长度与从所述自定义参数中的文件长度进行对比,判断文件上传是否完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410308845.7A CN104394183A (zh) | 2014-07-01 | 2014-07-01 | 文件上传***、方法及Nginx服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410308845.7A CN104394183A (zh) | 2014-07-01 | 2014-07-01 | 文件上传***、方法及Nginx服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104394183A true CN104394183A (zh) | 2015-03-04 |
Family
ID=52612018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410308845.7A Pending CN104394183A (zh) | 2014-07-01 | 2014-07-01 | 文件上传***、方法及Nginx服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104394183A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487858A (zh) * | 2015-09-01 | 2017-03-08 | 北京大学 | 信息上传方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067505A (zh) * | 2012-12-30 | 2013-04-24 | 乐视网信息技术(北京)股份有限公司 | 一种上传文件到服务器的方法 |
CN103248711A (zh) * | 2013-05-23 | 2013-08-14 | 华为技术有限公司 | 一种文件上传的方法和服务器 |
CN103401892A (zh) * | 2013-06-26 | 2013-11-20 | 中国科学院声学研究所 | 一种基于http post的数据上传加速方法及服务器 |
CN103533073A (zh) * | 2013-10-23 | 2014-01-22 | 北京网秦天下科技有限公司 | 用于移动设备文件的文件管理***和方法 |
CN103795809A (zh) * | 2014-03-03 | 2014-05-14 | 深圳市华曦达科技股份有限公司 | 文件上传方法及*** |
-
2014
- 2014-07-01 CN CN201410308845.7A patent/CN104394183A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067505A (zh) * | 2012-12-30 | 2013-04-24 | 乐视网信息技术(北京)股份有限公司 | 一种上传文件到服务器的方法 |
CN103248711A (zh) * | 2013-05-23 | 2013-08-14 | 华为技术有限公司 | 一种文件上传的方法和服务器 |
CN103401892A (zh) * | 2013-06-26 | 2013-11-20 | 中国科学院声学研究所 | 一种基于http post的数据上传加速方法及服务器 |
CN103533073A (zh) * | 2013-10-23 | 2014-01-22 | 北京网秦天下科技有限公司 | 用于移动设备文件的文件管理***和方法 |
CN103795809A (zh) * | 2014-03-03 | 2014-05-14 | 深圳市华曦达科技股份有限公司 | 文件上传方法及*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487858A (zh) * | 2015-09-01 | 2017-03-08 | 北京大学 | 信息上传方法及装置 |
CN106487858B (zh) * | 2015-09-01 | 2019-11-08 | 北京大学 | 信息上传方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5792850B2 (ja) | ネットワーク上でのファイルフォルダ送信 | |
US11057500B2 (en) | Publication of applications using server-side virtual screen change capture | |
US9503499B1 (en) | Concealing latency in display of pages | |
US20140250158A1 (en) | Method and device for obtaining file | |
WO2017167132A1 (zh) | 即时通信的实现方法和装置 | |
US20220060558A1 (en) | Systems and Methods for Platform-Independent Application Publishing to a Front-End Interface | |
WO2014186489A2 (en) | Enhanced links in curation and collaboration applications | |
WO2016070718A1 (zh) | 进行文件下载的方法、装置和浏览器 | |
CN109582644A (zh) | 文件存储方法、装置、设备及计算机可读存储介质 | |
CN103997452A (zh) | 多平台之间的信息分享方法及装置 | |
WO2015035897A1 (en) | Search methods, servers, and systems | |
CN102999628A (zh) | 搜索方法和信息搜索终端 | |
US9876776B2 (en) | Methods for generating and publishing a web site based on selected items and devices thereof | |
CN104079623B (zh) | 多级云存储同步控制方法及*** | |
WO2017088369A1 (zh) | 数据跨域请求方法、设备及*** | |
US10574773B2 (en) | Method, device, terminal, server and storage medium of processing network request and response | |
CN103905496A (zh) | 一种图片下载方法及装置 | |
CN105100230A (zh) | 一种文件传输方法和装置 | |
CN104537022A (zh) | 浏览器信息分享的方法、浏览器客户端和装置 | |
JP6089346B2 (ja) | オブジェクトを取得する方法、装置およびシステム | |
CN104394183A (zh) | 文件上传***、方法及Nginx服务器 | |
US10775966B2 (en) | Customizable autocomplete option | |
CN116361584A (zh) | 页面数据的处理方法、装置、计算机设备及存储介质 | |
CN204392300U (zh) | 文件上传*** | |
CN105100148B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150304 |