一种基于Ajax技术的文件上传方法及系统的制作方法

文档序号:7700140阅读:107来源:国知局
专利名称:一种基于Ajax技术的文件上传方法及系统的制作方法
技术领域
本发明涉及互联网的文件传输技术,尤其涉及 一种基于Ajax( Asynchronous JavaScript and XML)技术的文件上传方法及系统。
背景技术
随着互联网技术与应用的不断发展,Web业务平台已经在电子商务、企业 信息化中得到广泛应用,越来越多的应用架设在Web业务平台上。文件上传作 为Web业务的一个重要组成部分,可以通过插件或编辑器来实现。
随着Web业务的发展,用户对文件上传快速性及安全性的要求也越来越高。 目前业界所釆用的解决方案,根据一次允许上传文件的多少,分为单文件上传 和多文件上传两种方式。传统的单文件上传,每次只能选择一个文件上传,需 要用户反复点击"浏览"、"上传"按钮后等待上传,等待时间较长,且操作繁 瑣,影响用户体验。多文件上传提供非标准的上传接口,允许用户选择多个文 件后点"上传"按钮,同步上传多个文件,这种方案有效地降低了操作的繁瑣 程度,但由于一次上传文件过多,传输数据量增大,从而占用较多的网络带宽, 且用户后期等待的时间仍很长,不能提高用户体验。
并且,不论是上述方案的哪一种, 一般都釆用直接写入服务器硬盘的方式, 当用户不满意上传文件时,如果选择删除刚刚写入服务器硬盘的文件,则由于 输入/输出(I/O, Input/Output)端口的限制会严重影响到执行速度;如果选择 对已上传的文件置之不理,则必然导致已写入服务器硬盘的文件成为垃圾文件, 从而浪费服务器资源,更为可怕的是,黑客容易利用这一缺陷,通过在服务器 上的磁盘空间放置很多垃圾文件对服务器进行攻击,所以,现有文件上传系统 安全性较差。

发明内容
有鉴于此,本发明的主要目的在于提供一种基于Ajax技术的文件上传方法 及系统,提高上传文件速度以及安全性,从而提高用户体验。 为达到上述目的,本发明的技术方案是这样实现的 一种基于Ajax技术的文件上传方法,该方法包括
用户终端确定需要上传的文件,之后通过Ajax异步通信方式将所述需要上 传的文件传送至服务器的缓冲区;
服务器收到用户终端发送的确认写入指令后,将所述缓冲区中存储的需要 上传的文件写入存储单元,之后删除所述缓冲区中存储的需要上传的文件。
所述通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲 区为
通过JavaScript创建包含所述需要上传的文件及其相关信息的Ajax异步请 求对象;将所述Ajax异步请求对象发送给服务器,如果服务器的缓冲区中存在 与所述需要上传的文件同名的文件,则以所述需要上传的文件覆盖缓冲区中与 其同名的文件;否则,直接将所述需要上传的文件保存在缓冲区。
所述确定需要上传文件为用户选择准备上传的文件;用户终端根据所述 准备上传的文件的大小和/或类型,判断所述准备上传的文件是否符合上传文件
的要求,符合要求时,确定所述准备上传的文件为需要上传的文件;不符合要
求时,提示用户文件上传失败。
用户终端将所述需要上传的文件传送至服务器的缓冲区后,该方法进一步
包括需要对所述需要上传的文件进行修改搡作时,在用户终端进行修改,之 后用户终端通过Ajax异步通信方式将修改后的需要上传的文件传送至服务器 的缓冲区,覆盖缓冲区中存储的修改前的文件。
用户终端将所述需要上传的文件传送至服务器的缓冲区后,该方法进一步 包括需要对所述需要上传的文件进行删除操作时,用户终端生成并发送文件 删除指令至服务器,服务器根据所述文件删除指令删除缓冲区中存储的需要上传的文件。
该方法进一步包括设置计时时间,所述计时时间内,用户终端未对所述 缓冲区中存储的需要上传的文件进行搡作,则服务器删除所述缓冲区中存储的 需要上传的文件。
一种基于Ajax技术的文件上传系统,包括服务器和用户终端,所述用户终 端包括用户交互单元、Ajax异步通信单元,所述服务器包括延时缓冲单元、 文件写入单元、存储单元;其中,
所述用户交互单元,用于与用户进行交互,确定需要上传的文件,并将所 确定需要上传的文件发送给Ajax异步通信单元;以及在用户对需要上传的文件 确定正确无误后,发送确认写入指令至Ajax异步通信单元;
所述Ajax异步通信单元,用于将所述用户交互单元确定的需要上传的文件 通过Ajax异步通信方式传送至服务器的延时缓冲单元;将所述用户交互单元发 送的确认写入指令发送至服务器的文件写入单元;
所述延时缓冲单元,用于缓存所述Ajax异步通信单元传送的需要上传的文 件;在写入完成后,根据文件写入单元的通知,删除所述延时缓冲单元中存储 的需要上传的文件;
所述文件写入单元,用于在收到所述Ajax异步通信单元发送的确认写入指 令后,将所述延时缓冲单元中存储的需要上传的文件写入存储单元;在写入完 成后,通知延时缓冲单元删除延时缓冲单元中存储的需要上传的文件;
所述存储单元,用于存储文件写入单元写入的文件。
所述用户交互单元,还用于根据所述准备上传的文件的大小和/或类型,判 断所述准备上传的文件是否符合上传文件的要求,符合要求时,确定所述准备 上传的文件为需要上传的文件;不符合要求时,提示用户文件上传失败。
所述用户交互单元,还用于通过Ajax异步通信单元将^"改后的需要上传的
文件传送至服务器的延时缓冲单元,覆盖延时缓冲单元中存储的修改前的文件。
所述用户交互单元,还用于根据用户的删除操作,生成并通过Ajax异步通
信单元发送文件删除指令至延时缓冲单元;所述延时缓冲单元还用于根据收到的文件删除指令删除其中存储的需要上 传的文件。
所述服务器还包括计时单元,用于根据延时缓冲单元的通知进行计时,并
在计时时间到时后,通知延时缓冲单元;
相应的,所述延时缓冲单元,还用于在缓存所述Ajax异步通信单元传送的 需要上传的文件后,通知计时单元开始计时;以及根据Ajax异步通信单元发送 的文件删除指令删除其中存储的需要上传的文件后,通知计时单元开始计时;
以及根据计时单元的通知,删除其中存储的需要上传的文件。
采用本发明基于Ajax技术的文件上传方法及系统,上传多个文件时,通过 Ajax异步通信方式分时分次将用户确认的需要上传的文件上传到服务器,将原 来批量的上传多文件变为了分时分次的上传单个文件,从而减少了用户等待的 时间,提高了用户体验。
此外,用户确认需要上传的文件并不直接写入存储单元,而是先保存在缓 冲区,用户可以对保存在缓冲区的需要上传的文件进行修改、删除等操作,保 存在缓冲区的需要上传的文件经用户确认写入后,才写入存储单元。所以,本 发明在一定程度上避免了垃圾文件的产生,降低了服务器受攻击的风险,进而 提高了系统安全性。


图1为本发明基于Ajax技术的文件上传方法流程示意图; 图2为本发明基于Ajax技术的文件上传系统结构示意图。
具体实施例方式
Ajax技术,即异步JavaScript和XML技术,是一种创建交互式网页应用的 网页开发技术,它基于超文本链接标示语言(HTML)、 JavaScript 技术、动 态超文本链接标示语言(DHTML)和文档对象模型(DOM, Document Object Model),可以将笨拙的Web界面转化成交互性的Ajax应用程序。使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据,这使得Web应用程 序能够更为迅捷地回应用户动作,并避免在网络上发送那些没有改变过的信息。 Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
基于Ajax技术,本发明的基本思想是上传多个文件时,采用Ajax异步 通信方式分时分次将用户确认的需要上传的文件上传到服务器,将原来批量的 上传多文件变为了分时分次的上传单个文件。
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照 附图,对本发明进一步详细说明。
图l为本发明基于Ajax技术的文件上传方法流程示意图,如图l所示,本 发明基于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 具体包括用户交互单元2U、 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。
这里,所述计时单元可以是计时器、定时器、计数器等,只要能实现计时 目的的设备或器件都可以。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种基于Ajax技术的文件上传方法,其特征在于,该方法包括用户终端确定需要上传的文件,之后通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲区;服务器收到用户终端发送的确认写入指令后,将所述缓冲区中存储的需要上传的文件写入存储单元,之后删除所述缓冲区中存储的需要上传的文件。
2、 根据权利要求1所述的文件上传方法,其特征在于,所述通过Ajax异 步通信方式将所述需要上传的文件传送至服务器的缓冲区为通过JavaScript创建包含所述需要上传的文件及其相关信息的Ajax异步请 求对象;将所述Ajax异步请求对象发送给服务器,如果服务器的缓冲区中存在 与所述需要上传的文件同名的文件,则以所述需要上传的文件覆盖缓冲区中与 其同名的文件;否则,直接将所述需要上传的文件保存在缓冲区。
3、 根据权利要求l所述的文件上传方法,其特征在于,所述确定需要上传 文件为用户选择准备上传的文件;用户终端根据所述准备上传的文件的大小 和/或类型,判断所述准备上传的文件是否符合上传文件的要求,符合要求时,确定所述准备上传的文件为需要上传的文件;不符合要求时,提示用户文件上传失败。
4、 根据权利要求l所述的文件上传方法,其特征在于,用户终端将所述需 要上传的文件传送至服务器的缓冲区后,该方法进一步包括需要对所述需要 上传的文件进行修改操作时,在用户终端进行修改,之后用户终端通过Ajax异 步通信方式将修改后的需要上传的文件传送至服务器的缓冲区,覆盖缓冲区中 存储的修改前的文件。
5、 根据权利要求l所述的文件上传方法,其特征在于,用户终端将所述需 要上传的文件传送至服务器的缓冲区后,该方法进一步包括需要对所述需要 上传的文件进行删除操作时,用户终端生成并发送文件删除指令至服务器,服 务器根据所述文件删除指令删除缓冲区中存储的需要上传的文件。
6、 根据权利要求1至5任一项所述的文件上传方法,其特征在于,该方法 进一步包括设置计时时间,所述计时时间内,用户终端未对所述缓冲区中存 储的需要上传的文件进行操作,则服务器删除所述缓冲区中存储的需要上传的 文件。
7、 一种基于Ajax技术的文件上传系统,包括服务器和用户终端,其特征 在于,所述用户终端包括用户交互单元、Ajax异步通信单元,所述服务器包括: 延时缓冲单元、文件写入单元、存储单元;其中,所述用户交旦单元,用于与用户进行交互,确定需要上传的文件,并将所 确定需要上传的文件发送给Ajax异步通信单元;以及在用户对需要上传的文件 确定正确无误后,发送确认写入指令至Ajax异步通信单元;所述Ajax异步通信单元,用于将所述用户交互单元确定的需要上传的文件 通过Ajax异步通信方式传送至服务器的延时缓冲单元;将所述用户交互单元发 送的确认写入指令发送至服务器的文件写入单元;所述延时缓冲单元,用于缓存所述Ajax异步通信单元传送的需要上传的文 件;在写入完成后,根据文件写入单元的通知,删除所述延时缓冲单元中存储 的需要上传的文件;所述文件写入单元,用于在收到所述Ajax异步通信单元发送的确认写入指 令后,将所述延时缓冲单元中存储的需要上传的文件写入存储单元;在写入完成后,通知延时缓冲单元删除延时缓冲单元中存储的需要上传的文件;所述存储单元,用于存储文件写入单元写入的文件。
8、 根据权利要求7所述的文件上传系统,其特征在于,所述用户交互单元,还用于根据所述准备上传的文件的大小和/或类型,判断所述准备上传的文件是 否符合上传文件的要求,符合要求时,确定所述准备上传的文件为需要上传的文件;不符合要求时,提示用户文件上传失败。
9、 根据权利要求7所述的文件上传系统,其特征在于,所述用户交互单元, 还用于通过Ajax异步通信单元将修改后的需要上传的文件传送至服务器的延 时缓冲单元,覆盖延时缓冲单元中存储的修改前的文件。
10、 根据权利要求7所述的文件上传系统,其特征在于,所述用户交互单 元,还用于根据用户的删除操作,生成并通过Ajax异步通信单元发送文件删除 指令至延时缓冲单元;所述延时缓冲单元还用于根据收到的文件删除指令删除其中存储的需要上 传的文件。
11、 根据权利要求7至IO任一项所述的文件上传系统,其特征在于,所述 服务器还包括计时单元,用于根据延时缓冲单元的通知进行计时,并在计时时间到时后,通知延时缓冲单元;相应的,所述延时缓冲单元,还用于在缓存所述Ajax异步通信单元传送的 需要上传的文件后,通知计时单元开始计时;以及根据Ajax异步通信单元发送的文件删除指令删除其中存储的需要上传的文件后,通知计时单元开始计时;以及根据计时单元的通知,删除其中存储的需要上传的文件。
全文摘要
本发明公开一种基于Ajax技术的文件上传方法,包括用户终端确定需要上传的文件,之后通过Ajax异步通信方式将所述需要上传的文件传送至服务器的缓冲区;服务器收到用户终端发送的确认写入指令,则将所述缓冲区中存储的需要上传的文件写入存储单元,之后删除所述缓冲区中存储的需要上传的文件。本发明还相应地公开一种基于Ajax技术的文件上传系统,采用本发明基于Ajax技术的文件上传方法及系统,上传多个文件时,通过Ajax异步通信方式分时分次将用户确认的需要上传的文件上传到服务器,将原来批量的上传多文件变为了分时分次的上传单个文件,从而减少了用户等待的时间,提高了用户体验。
文档编号H04L29/08GK101567903SQ20091008376
公开日2009年10月28日 申请日期2009年5月11日 优先权日2009年5月11日
发明者佟祥东, 韦崇辉 申请人:北京中企开源信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1