2024年3月11日发(作者:)

Web上传文件的三种解决方案

王建斌 赵靓

(肇庆学院,广东 肇庆 526061)

(肇庆医学高等专科学校,广东 肇庆 526020)

摘 要 介绍了Web上传文件的三种客户端解决方案:HTML表单、RIA以及插件,

它们都可以很好地实现文件上传任务,当然这还需要服务端代码的配合,其中RIA选择了

Flex,插件选择了ActiveX作为代表来介绍。此外,重点在于构建和分析HTTP协议数据

来提供大文件上传的实时上传进度显示。

关键词 Web;HTTP;Flex;ActiveX;文件上传

1 引言

如果是对于几KB至几MB字节的文件上传,确实没有必要写一篇文章去讨论,但是

如果需要上传大文件,例如教师向网络学习系统上传软件、视频等几百MB甚至上GB大

小的文件时,平常所用的方法要么失效,要么不能实时反映上传进度。

文中采用的方法对于小文件和大文件上传一视同仁,并且对可能采用的三种解决方案

进行展示和总结。那么,可能采用的三种解决方案如下:

(1) HTML Form(可含Javascript、Ajax)。

(2) RIA技术(Flex、Silverlight、JavaFX等)。

(3) 插件技术(Acticx、Applet等)。

图1 Web服务存储上传文件的方式

文件上传到服务器,一般可以存放于本地文件系统、数据库和远程FTP等。图1为文

件上传到Web服务器的存放方式示意图。

浏览器/服务器(B/S)模式,其实是一种特殊形式的C/S,浏览器作为客户端,HTTP

作为通信协议。面对简单的文件上传情况,客户端代码只需HTML表单,服务器编写简单

的动态页面和处理代码。而对于复杂的大文件带进度显示的上传,则一般要深入了解HTTP

1.1协议

[1]

以及各类技术如何处理HTTP请求。文中所讲如图2所示的三种解决方案,主要

指的是浏览器端的代码,而服务端不限制使用何种动态页面技术或代码模块。