Flex2中的文件上传下载实现

需积分: 9 4 下载量 133 浏览量 更新于2024-09-11 收藏 265KB PDF 举报
"Flex文件上传下载技术讲解" 在Flex开发中,文件的上传与下载是常见功能,尤其在处理用户交互和数据交换时必不可少。在Flex 1.5版本之前,实现这一功能较为复杂,需要借助Flash Player API中的FileReference类,并将其引入到FLA文件中。然而,自Flex 2开始,FileReference类被整合到Flex类库中,使得在Flex应用程序中直接调用变得更为简便。 **24.1 技术准备** 文件的上传下载在Flex中主要依赖于`flash.net.FileReference`类。这个类提供了在用户计算机和服务器之间进行文件上传和下载的接口。通过它,开发者可以打开操作系统对话框,让用户选择上传文件或设定下载文件的保存位置,然后利用HTTP协议执行实际的文件传输。 然而,出于安全考虑,Flash Player不会提供所选文件的完整路径,只能获取文件的一些元信息,如大小、创建日期等。因此,虽然FileReference类简化了操作,但在Flex中实现完整的文件上传下载仍然存在一定的限制。 **24.1.1 FileReference类属性** FileReference类包含一系列只读属性,用于获取文件的相关信息: - `creationDate`: 文件的创建日期,类型为Date。 - `creator`: 文件的创建者信息,类型为String。 - `modificationDate`: 文件的最后修改日期,类型为Date。 - `name`: 文件的名称,类型为String。 - `size`: 文件的大小,单位通常为字节,类型为uint。 - `type`: 文件的MIME类型,类型为String。 这些属性提供了一个基本的文件元数据视图,但不包括文件的实际内容或完整路径。 **24.1.2 FileReference类方法** FileReference类提供了四个核心方法来实现文件的上传、下载、取消传输以及选择文件: 1. `browse()`: 打开文件选择对话框,允许用户选择一个本地文件进行上传。可选地,可以指定文件类型过滤器,限制用户只能选择特定类型的文件,如图像或文本文件。 2. `upload()`: 开始上传选中的文件到服务器。通常需要提供一个URLRequest对象,其中包含了上传的目标URL和可能的POST参数。 3. `download()`: 下载远程文件到用户的本地计算机。同样需要一个URLRequest对象,指定文件的源URL,以及可选的保存文件名。 4. `cancel()`: 取消当前正在进行的文件传输操作。 在实现文件上传下载的过程中,开发者还需要关注进度事件(如`progress`、`complete`、`ioError`等),以便实时反馈传输状态并处理可能出现的错误。 Flex的文件上传下载机制基于Flash Player的安全模型,提供了一种相对安全且方便的方式来处理用户与服务器之间的文件交互。尽管存在一定的局限性,如无法获取完整文件路径,但通过FileReference类提供的方法和事件,开发者仍然能够构建出功能完善的文件上传下载模块。