CN102404365A - 一种基于Ajax技术的文件上传装置 - Google Patents

一种基于Ajax技术的文件上传装置 Download PDF

Info

Publication number
CN102404365A
CN102404365A CN2010102818238A CN201010281823A CN102404365A CN 102404365 A CN102404365 A CN 102404365A CN 2010102818238 A CN2010102818238 A CN 2010102818238A CN 201010281823 A CN201010281823 A CN 201010281823A CN 102404365 A CN102404365 A CN 102404365A
Authority
CN
China
Prior art keywords
file
uploaded
needs
server
buffering area
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
Application number
CN2010102818238A
Other languages
English (en)
Inventor
彭雪海
孙涛
聂凌云
王路权
曹珅
韦崇辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING CE OPEN SOURCE SOFTWARE Co Ltd
BEIJING CHONGWEN DISTRICT INFORMATION OFFICE
Original Assignee
BEIJING CE OPEN SOURCE SOFTWARE Co Ltd
BEIJING CHONGWEN DISTRICT INFORMATION OFFICE
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING CE OPEN SOURCE SOFTWARE Co Ltd, BEIJING CHONGWEN DISTRICT INFORMATION OFFICE filed Critical BEIJING CE OPEN SOURCE SOFTWARE Co Ltd
Priority to CN2010102818238A priority Critical patent/CN102404365A/zh
Publication of CN102404365A publication Critical patent/CN102404365A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开一种基于Ajax技术的文件上传装置,包括:用户终端用于确定需要上传的文件,之后通过Ajax异步通信方式通过用户终端将所述需要上传的文件传送至服务器;服务器收到用户终端发送的确认写入指令,则将所述缓冲区中存储的需要上传的文件写入存储单元,之后删除所述服务器中存储的需要上传的文件。

Description

一种基于Ajax技术的文件上传装置
技术领域
本发明涉及互联网的文件传输技术,尤其涉及一种基于Ajax(AsynchronousJavaScript and XML)技术的文件上传装置。
背景技术
随着互联网技术与应用的不断发展,Web业务平台已经在电子商务、企业信息化中得到广泛应用,越来越多的应用架设在Web业务平台上。文件上传作为Web业务的一个重要组成部分,可以通过插件或编辑器来实现。
随着Web业务的发展,用户对文件上传快速性及安全性的要求也越来越高。目前业界所采用的解决方案,根据一次允许上传文件的多少,分为单文件上传和多文件上传两种方式。传统的单文件上传,每次只能选择一个文件上传,需要用户反复点击“浏览”、“上传”按钮后等待上传,等待时间较长,且操作繁琐,影响用户体验。多文件上传提供非标准的上传接口,允许用户选择多个文件后点“上传”按钮,同步上传多个文件,这种方案有效地降低了操作的繁琐程度,但由于一次上传文件过多,传输数据量增大,从而占用较多的网络带宽,且用户后期等待的时间仍很长,不能提高用户体验。
并且,不论是上述方案的哪一种,一般都采用直接写入服务器硬盘的方式,当用户不满意上传文件时,如果选择删除刚刚写入服务器硬盘的文件,则由于输入/输出(I/O,Input/Output)端口的限制会严重影响到执行速度;如果选择对已上传的文件置之不理,则必然导致已写入服务器硬盘的文件成为垃圾文件,从而浪费服务器资源,更为可怕的是,黑客容易利用这一缺陷,通过在服务器上的磁盘空间放置很多垃圾文件对服务器进行攻击,所以,现有文件上传系统安全性较差。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于Ajax技术的文件上传装置,提高上传文件速度以及安全性,从而提高用户体验。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于Ajax技术的文件上传装置,其特征在于,该装置包括:
用户终端确定需要上传的文件,之后通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲区;
服务器收到用户终端发送的确认写入指令后,将所述缓冲区中存储的需要上传的文件写入存储单元,之后删除所述缓冲区中存储的需要上传的文件。
所述通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲区为:
通过JavaScript创建包含所述需要上传的文件及其相关信息的Ajax异步请求对象;将所述Ajax异步请求对象发送给服务器,如果服务器的缓冲区中存在与所述需要上传的文件同名的文件,则以所述需要上传的文件覆盖缓冲区中与其同名的文件;否则,直接将所述需要上传的文件保存在缓冲区。
所述确定需要上传文件为:用户选择准备上传的文件;用户终端根据所述准备上传的文件的大小和/或类型,判断所述准备上传的文件是否符合上传文件的要求,符合要求时,确定所述准备上传的文件为需要上传的文件;不符合要求时,提示用户文件上传失败。
用户终端将所述需要上传的文件传送至服务器的缓冲区后,该装置进一步包括:需要对所述需要上传的文件进行修改操作时,在用户终端进行修改,之后用户终端通过Ajax异步通信方式将修改后的需要上传的文件传送至服务器的缓冲区,覆盖缓冲区中存储的修改前的文件。
用户终端将所述需要上传的文件传送至服务器的缓冲区后,该装置进一步包括:需要对所述需要上传的文件进行删除操作时,用户终端生成并发送文件删除指令至服务器,服务器根据所述文件删除指令删除缓冲区中存储的需要上传的文件。
该装置进一步包括:设置计时时间,所述计时时间内,用户终端未对所述缓冲区中存储的需要上传的文件进行操作,则服务器删除所述缓冲区中存储的需要上传的文件。
相应的,所述延时缓冲单元,还用于在缓存所述Ajax异步通信单元传送的需要上传的文件后,通知计时单元开始计时;以及根据Ajax异步通信单元发送的文件删除指令删除其中存储的需要上传的文件后,通知计时单元开始计时;以及根据计时单元的通知,删除其中存储的需要上传的文件。
采用本发明基于Ajax技术的文件上传装置及系统,上传多个文件时,通过Ajax异步通信方式分时分次将用户确认的需要上传的文件上传到服务器,将原来批量的上传多文件变为了分时分次的上传单个文件,从而减少了用户等待的时间,提高了用户体验。
此外,用户确认需要上传的文件并不直接写入存储单元,而是先保存在缓冲区,用户可以对保存在缓冲区的需要上传的文件进行修改、删除等操作,保存在缓冲区的需要上传的文件经用户确认写入后,才写入存储单元。所以,本发明在一定程度上避免了垃圾文件的产生,降低了服务器受攻击的风险,进而提高了系统安全性。
附图说明
图1为本发明基于Ajax技术的文件上传装置流程示意图;
图2为本发明基于Ajax技术的文件上传系统结构示意图。
具体实施方式
Ajax技术,即异步JavaScript和XML技术,是一种创建交互式网页应用的网页开发技术,它基于超文本链接标示语言(HTML)、JavaScriptTM技术、动态超文本链接标示语言(DHTML)和文档对象模型(DOM,Document ObjectModel),可以将笨拙的Web界面转化成交互性的Ajax应用程序。使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据,这使得Web应用程序能够更为迅捷地回应用户动作,并避免在网络上发送那些没有改变过的信息。Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
基于Ajax技术,本发明的基本思想是:上传多个文件时,采用Ajax异步通信方式分时分次将用户确认的需要上传的文件上传到服务器,将原来批量的上传多文件变为了分时分次的上传单个文件。
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
图1为本发明基于Ajax技术的文件上传装置流程示意图,如图1所示,本发明基于Ajax技术的文件上传装置一般包括以下步骤:
步骤101:用户选择准备上传的文件。
这里,用户一般通过浏览器选择准备上传的文件。
步骤102:用户终端判断用户所选择的准备上传的文件是否符合上传文件的要求,如果是,则确定所述准备上传的文件为需要上传的文件,执行步骤103;否则执行步骤110。
这里,用户终端一般通过脚本语言JavaScript判断用户选择的准备上传的文件是否符合上传文件的要求,例如,可以通过判断准备上传文件的大小和/或类型是否在预先设置的文件大小范围和/或文件类型范围内,来判断用户选择的准备上传的文件是否符合上传文件的要求。其中,上传文件的要求可以由系统设置,也可以由用户根据实际需要设置。
步骤103:用户终端通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲区,并启动计时。
在服务器中,有一部分大小不确定的内存空间专门用于存储延时上传的文件,每个用户可以拥有自己独立的缓冲区,相互不会影响,在使用时,缓冲区由系统根据“使用时分配、用完清空”的原则自动进行分配,用户没有使用到缓冲区时,其对应的缓冲区大小为0。
对于需要上传的文件,本发明通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲区,即通过JavaScript创建包含所述需要上传的文件及其相关信息的Ajax异步请求对象,然后将此Ajax异步请求对象发送给服务器的缓冲区。
将需要上传的文件传送至服务器的缓冲区时,如果缓冲区中存在与所述需要上传的文件同名的文件,则以所述需要上传的文件覆盖与其同名的文件;否则,直接将所述需要上传的文件保存在缓冲区。
这里,缓冲区缓存用户终端传送的需要上传的文件之前,还可以根据文件类型等信息判断是否对所述需要上传的文件进行缓存,例如,可以通过判断需要上传文件的大小和/或类型是否在预先设置的文件大小范围和/或文件类型范围内,来判断是否对所述需要上传的文件进行缓存,以进一步提高服务器的安全性。
另外,需要说明的是,有多个用户终端要上传文件时,服务器应为每个用户终端启动一个计时。
步骤104:服务器判断当前用户终端的计时时间是否到时,如果是,则执行步骤108;否则,转到步骤105。
这里,对应每个用户终端的计时时间是预先设置的,例如预先设置计时时间为三十分钟,主要是为了避免因用户遗忘、用户终端故障等原因,导致服务器上产生垃圾文件、服务器资源浪费。
需要说明的是,这里所述计时可采用计时器、定时器、计数器等方式实现,只要能达到计时的目的即可。
步骤105:服务器判断是否收到用户终端的确认写入指令,如果是,则执行步骤109;否则,转到步骤106。
用户对需要上传的文件确定正确无误后,需要激发写入事件,即发送确认写入指令通知服务器将缓冲区中的文件写入存储单元,完成文件的上传工作。
这里,所述存储单元一般为服务器硬盘。
步骤106:判断用户是否对所述需要上传的文件进行修改或删除操作,如果是,则执行步骤107;否则,直接返回步骤104。
步骤107:对缓冲区中存储的需要上传的文件执行相应的修改或删除操作,并重新开始计时,之后返回步骤104。
如果用户需要对需要上传的文件进行修改操作,则在用户终端进行修改后,再由用户终端将修改后的需要上传的文件传送至服务器的缓冲区,覆盖缓冲区中存储的修改前的文件。
如果用户需要对需要上传的文件进行删除操作,则用户终端会根据用户的删除操作生成文件删除指令,并将所述文件删除指令发送至服务器,服务器根据所述文件删除指令删除其缓冲区中存储的需要上传的文件,这里,文件删除指令携带需要删除的文件信息。
步骤108:服务器删除缓冲区中存储的需要上传的文件,本次上传流程结束。
步骤109:服务器将缓冲区中存储的需要上传的文件写入存储单元,之后删除缓冲区存储的需要上传的文件,本次上传流程结束。
步骤110:用户终端提示用户文件上传失败。
图2为本发明基于Ajax技术的文件上传系统结构示意图,如图2所示,本发明基于Ajax技术的文件上传系统包括用户终端21和服务器22,用户终端21具体包括用户交互单元211、Ajax异步通信单元212;服务器22具体包括延时缓冲单元221、文件写入单元222、存储单元223、计时单元224,其中,
用户交互单元211,用于与用户进行交互;
在用户选择准备上传的文件后,判断所述准备上传的文件是否符合上传文件的要求,符合要求时,确定所述准备上传的文件为需要上传的文件,并将所述需要上传的文件及其相关信息发送至Ajax异步通信单元212;不符合要求时,用户交互单元211提示用户文件上传失败;
在用户对需要上传的文件执行修改操作后,将修改后的需要上传的文件及其相关信息发送至Ajax异步通信单元212;
在用户对需要上传的文件执行删除操作后,根据用户的删除操作生成文件删除指令,并发送至Ajax异步通信单元212;
在用户对需要上传的文件确定正确无误后,发送确认写入指令至Ajax异步通信单元212。
这里,用户交互单元211一般通过脚本语言JavaScript判断用户选择的准备上传的文件是否符合上传文件的要求,例如,可以通过判断准备上传文件的大小和/或类型是否在预先设置的文件大小范围和/或文件类型范围内,来判断用户选择的准备上传的文件是否符合上传文件的要求。
其中,上传文件的要求可以由系统设置,也可以由用户根据实际需要设置。文件删除指令一般携带需要删除的文件信息。
Ajax异步通信单元212,用于将来自用户交互单元211的需要上传的文件通过Ajax异步通信方式传送至服务器的延时缓冲单元221;将来自用户交互单元211文件删除指令发送至延时缓冲单元221;将来自用户交互单元211的确认写入指令发送至文件写入单元222。
这里,通过Ajax异步通信方式将所述需要上传的文件传送至服务器的延时缓冲单元,即通过JavaScript创建包含所述需要上传的文件及其相关信息的Ajax异步请求对象,然后将此Ajax异步请求对象发送给服务器的延时缓冲单元。
延时缓冲单元221,用于缓存所述Ajax异步通信单元212传送的需要上传的文件,并在缓存需要上传的文件后,通知计时单元开始计时;
还用于根据Ajax异步通信单元212发送的文件删除指令删除其中存储的需要上传的文件,之后通知计时单元开始计时;根据计时单元224的通知,删除其中存储的需要上传的文件;在写入完成后,根据文件写入单元222的通知,删除所述延时缓冲单元221中存储的需要上传的文件。
在服务器中,有一部分大小不确定的内存空间专门用于存储延时上传的文件,每个用户可以拥有自己独立的延时缓冲单元,相互不会影响,在使用时,延时缓冲单元由系统根据“使用时分配、用完清空”的原则自动进行分配,用户没有使用到延时缓冲区时,其对应的延时缓冲单元大小为0。
将需要上传的文件传送至服务器的延时缓冲单元221时,如果延时缓冲单元221中存在与所述需要上传的文件同名的文件,则以所述需要上传的文件覆盖与其同名的文件;否则,直接将所述需要上传的文件保存在延时缓冲单元221。
延时缓冲单元221缓存用户终端传送的需要上传的文件之前,还可以根据文件类型等信息判断是否对所述需要上传的文件进行缓存,例如,可以通过判断需要上传文件的大小和/或类型是否在预先设置的文件大小范围和/或文件类型范围内,来判断是否对所述需要上传的文件进行缓存,以进一步提高服务器的安全性。
文件写入单元222,用于在收到所述Ajax异步通信单元212发送的确认写入指令后,将所述延时缓冲单元221中存储的需要上传的文件写入存储单元223;在写入完成后,通知延时缓冲单元221删除延时缓冲单元中存储的需要上传的文件。
存储单元223,用于存储文件写入单元222写入的文件。
计时单元224,用于根据延时缓冲单元221的通知进行计时,并在计时时间到时后,通知延时缓冲单元221。
这里,所述计时单元可以是计时器、定时器、计数器等,只要能实现计时目的的设备或器件都可以。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (6)

1.一种基于Ajax技术的文件上传装置,其特征在于,该装置包括:
用户终端确定需要上传的文件,之后通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲区;
服务器收到用户终端发送的确认写入指令后,将所述缓冲区中存储的需要上传的文件写入存储单元,之后删除所述缓冲区中存储的需要上传的文件。
2.根据权利要求1所述的文件上传装置,其特征在于,所述通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲区为:
通过JavaScript创建包含所述需要上传的文件及其相关信息的Ajax异步请求对象;将所述Ajax异步请求对象发送给服务器,如果服务器的缓冲区中存在与所述需要上传的文件同名的文件,则以所述需要上传的文件覆盖缓冲区中与其同名的文件;否则,直接将所述需要上传的文件保存在缓冲区。
3.根据权利要求1所述的文件上传装置,其特征在于,所述确定需要上传文件为:用户选择准备上传的文件;用户终端根据所述准备上传的文件的大小和/或类型,判断所述准备上传的文件是否符合上传文件的要求,符合要求时,确定所述准备上传的文件为需要上传的文件;不符合要求时,提示用户文件上传失败。
4.根据权利要求1所述的文件上传装置,其特征在于,用户终端将所述需要上传的文件传送至服务器的缓冲区后,该装置进一步包括:需要对所述需要上传的文件进行修改操作时,在用户终端进行修改,之后用户终端通过Ajax异步通信方式将修改后的需要上传的文件传送至服务器的缓冲区,覆盖缓冲区中存储的修改前的文件。
5.根据权利要求1所述的文件上传装置,其特征在于,用户终端将所述需要上传的文件传送至服务器的缓冲区后,该装置进一步包括:需要对所述需要上传的文件进行删除操作时,用户终端生成并发送文件删除指令至服务器,服务器根据所述文件删除指令删除缓冲区中存储的需要上传的文件。
6.根据权利要求1至5任一项所述的文件上传装置,其特征在于,该装置进一步包括:设置计时时间,所述计时时间内,用户终端未对所述缓冲区中存储的需要上传的文件进行操作,则服务器删除所述缓冲区中存储的需要上传的文件;
相应的,所述延时缓冲单元,还用于在缓存所述Ajax异步通信单元传送的需要上传的文件后,通知计时单元开始计时;以及根据Ajax异步通信单元发送的文件删除指令删除其中存储的需要上传的文件后,通知计时单元开始计时;以及根据计时单元的通知,删除其中存储的需要上传的文件。
CN2010102818238A 2010-09-15 2010-09-15 一种基于Ajax技术的文件上传装置 Pending CN102404365A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102818238A CN102404365A (zh) 2010-09-15 2010-09-15 一种基于Ajax技术的文件上传装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102818238A CN102404365A (zh) 2010-09-15 2010-09-15 一种基于Ajax技术的文件上传装置

Publications (1)

Publication Number Publication Date
CN102404365A true CN102404365A (zh) 2012-04-04

Family

ID=45886151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102818238A Pending CN102404365A (zh) 2010-09-15 2010-09-15 一种基于Ajax技术的文件上传装置

Country Status (1)

Country Link
CN (1) CN102404365A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714992A (zh) * 2013-12-12 2015-06-17 南宁市磁汇科技有限公司 向web页面动态插入本地文件的一键式处理方法和装置
CN105577733A (zh) * 2014-11-05 2016-05-11 中国银联股份有限公司 基于异步传输方式的文件上传方法及系统
CN105577800A (zh) * 2016-02-17 2016-05-11 亿阳安全技术有限公司 一种上传文件时的异步提醒装置及方法
CN107360256A (zh) * 2017-08-23 2017-11-17 上海斐讯数据通信技术有限公司 一种生成文本笔记文件、网盘存储文本笔记的方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714992A (zh) * 2013-12-12 2015-06-17 南宁市磁汇科技有限公司 向web页面动态插入本地文件的一键式处理方法和装置
CN105577733A (zh) * 2014-11-05 2016-05-11 中国银联股份有限公司 基于异步传输方式的文件上传方法及系统
CN105577800A (zh) * 2016-02-17 2016-05-11 亿阳安全技术有限公司 一种上传文件时的异步提醒装置及方法
CN105577800B (zh) * 2016-02-17 2018-10-12 亿阳安全技术有限公司 一种上传文件时的异步提醒装置及方法
CN107360256A (zh) * 2017-08-23 2017-11-17 上海斐讯数据通信技术有限公司 一种生成文本笔记文件、网盘存储文本笔记的方法及系统

Similar Documents

Publication Publication Date Title
CN105045887B (zh) 混合模式跨域数据交互的系统及其方法
CN110336871A (zh) 一种文件处理方法、装置、存储介质及电子设备
CN101567903B (zh) 一种基于Ajax技术的文件上传方法及系统
CN103095769B (zh) 跨机房的数据同步方法以及系统
CN103338276B (zh) 一种网络终端之间传输数据的方法
CN102495866A (zh) 共享文档同步更新的方法和系统
CN105763619A (zh) 客户端与服务端进行通讯的方法及装置
CN103096271A (zh) 信息推送系统和信息推送方法
CN104899325A (zh) 一种app采集数据的收集方法、终端、服务器及系统
CN102682093A (zh) 一种移动浏览器网页分段加载方法及系统
US20110016190A1 (en) Method and apparatus for realizing message service
CN110888844B (zh) 一种数据删除方法、系统、设备及计算机可读存储介质
Huang AppACTS: Mobile app automated compatibility testing service
US20120296946A1 (en) File management apparatus and file management apparatus controlling method
CN103905495A (zh) 一种应用的同步方法及后台服务器
CN102404365A (zh) 一种基于Ajax技术的文件上传装置
CN103368991A (zh) 云存储的即时同步系统
CN102238223B (zh) 一种面向移动设备的网络化个人数据管理方法
CN103491162A (zh) 基于移动互联网的信息分享方法及系统
WO2016202206A1 (zh) 一种超文本传输请求的补发方法、装置及客户端
CN101741866B (zh) 一种在线存储系统及方法
CN104750741A (zh) 一种无效链接处理方法及装置
CN104660843A (zh) 信息处理装置及其控制方法
WO2012065393A1 (zh) 一种实现数据同步的方法、移动终端及系统
CN102148839B (zh) 一种管理ftp服务器的方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
DD01 Delivery of document by public notice

Addressee: Beijing Chongwen District Information Office

Document name: Notification of before Expiration of Request of Examination as to Substance

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120404