Flex实现多文件批量上传
来源:互联网 发布:如何将mac照片导入硬盘 编辑:程序博客网 时间:2024/05/22 14:00
下例说明如何使用事件来管理多个文件的上载。CustomFileReferenceList 类扩展了 FileReferenceList,它包含一个
complete
事件,在上载 FileReferenceList 对象中的各个文件时将分派该事件。FileReferenceList 对象中的所有文件上载完毕后,将分派 FileReferenceListExample 类中的LIST_COMPLETE
事件。要运行该示例,请插入一个编写好以接受 http://www.[yourDomain].com/yourUploadHandlerScript.cfm 处的文件上载的脚本。根据 SWF 文件的位置及文件的上载位置,您可能还需要编译 SWF 文件,将“本地回放安全性”设置为“只访问网络”,或更新 Flash® Player 的安全设置,以允许此文件网络访问。如果上载服务器为远程服务器,并且要从桌面计算机运行此示例,则服务器必须具有 crossdomain.xml 文件。
- package {
- import flash.display.Sprite;
- import flash.events.*;
- import flash.net.FileReference;
- import flash.net.FileReferenceList;
- public class FileReferenceListExample extends Sprite {
- public static var LIST_COMPLETE:String = "listComplete";
- public function FileReferenceListExample() {
- initiateFileUpload();
- }
- private function initiateFileUpload():void {
- var fileRef:CustomFileReferenceList = new CustomFileReferenceList();
- fileRef.addEventListener(FileReferenceListExample.LIST_COMPLETE, listCompleteHandler);
- fileRef.browse(fileRef.getTypes());
- }
- private function listCompleteHandler(event:Event):void {
- trace("listCompleteHandler");
- }
- }
- }
- import flash.events.*;
- import flash.net.FileReference;
- import flash.net.FileReferenceList;
- import flash.net.FileFilter;
- import flash.net.URLRequest;
- class CustomFileReferenceList extends FileReferenceList {
- private var uploadURL:URLRequest;
- private var pendingFiles:Array;
- public function CustomFileReferenceList() {
- uploadURL = new URLRequest();
- uploadURL.url = "http://www.[yourDomain].com/yourUploadHandlerScript.cfm";
- initializeListListeners();
- }
- private function initializeListListeners():void {
- addEventListener(Event.SELECT, selectHandler);
- addEventListener(Event.CANCEL, cancelHandler);
- }
- public function getTypes():Array {
- var allTypes:Array = new Array();
- allTypes.push(getImageTypeFilter());
- allTypes.push(getTextTypeFilter());
- return allTypes;
- }
- private function getImageTypeFilter():FileFilter {
- return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
- }
- private function getTextTypeFilter():FileFilter {
- return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
- }
- private function doOnComplete():void {
- var event:Event = new Event(FileReferenceListExample.LIST_COMPLETE);
- dispatchEvent(event);
- }
- private function addPendingFile(file:FileReference):void {
- trace("addPendingFile: name=" + file.name);
- pendingFiles.push(file);
- file.addEventListener(Event.OPEN, openHandler);
- file.addEventListener(Event.COMPLETE, completeHandler);
- file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
- file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
- file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
- file.upload(uploadURL);
- }
- private function removePendingFile(file:FileReference):void {
- for (var i:uint; i < pendingFiles.length; i++) {
- if (pendingFiles[i].name == file.name) {
- pendingFiles.splice(i, 1);
- if (pendingFiles.length == 0) {
- doOnComplete();
- }
- return;
- }
- }
- }
- private function selectHandler(event:Event):void {
- trace("selectHandler: " + fileList.length + " files");
- pendingFiles = new Array();
- var file:FileReference;
- for (var i:uint = 0; i < fileList.length; i++) {
- file = FileReference(fileList[i]);
- addPendingFile(file);
- }
- }
- private function cancelHandler(event:Event):void {
- var file:FileReference = FileReference(event.target);
- trace("cancelHandler: name=" + file.name);
- }
- private function openHandler(event:Event):void {
- var file:FileReference = FileReference(event.target);
- trace("openHandler: name=" + file.name);
- }
- private function progressHandler(event:ProgressEvent):void {
- var file:FileReference = FileReference(event.target);
- trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
- }
- private function completeHandler(event:Event):void {
- var file:FileReference = FileReference(event.target);
- trace("completeHandler: name=" + file.name);
- removePendingFile(file);
- }
- private function httpErrorHandler(event:Event):void {
- var file:FileReference = FileReference(event.target);
- trace("httpErrorHandler: name=" + file.name);
- }
- private function ioErrorHandler(event:Event):void {
- var file:FileReference = FileReference(event.target);
- trace("ioErrorHandler: name=" + file.name);
- }
- private function securityErrorHandler(event:Event):void {
- var file:FileReference = FileReference(event.target);
- trace("securityErrorHandler: name=" + file.name + " event=" + event.toString());
- }
- }
- Flex实现多文件批量上传
- Flex实现多文件批量上传
- Flex实现多文件批量上传
- fileupload实现多文件批量上传
- 使用ajaxFileupload实现多文件批量上传
- js实现文件批量上传
- 文件批量上传的实现
- Struts2实现文件批量上传
- .NET多文件批量上传
- struts2实现文件批量上传功能
- SpringMvc+Angularjs 多文件批量上传
- lightswitch如何实现文件批量上传功能
- asp.net+JQuery实现文件批量上传!
- 利用swfupload实现java文件批量上传
- asp.net中实现文件批量上传
- 利用swfupload实现java文件批量上传
- Struts通过Jquery Uploadify实现文件批量上传
- 使用ext实现java文件批量上传
- cocos3D
- 常用的功能测试方法
- Flex中单文件的上传实现方式
- Android安全资料收集
- asp.net验证码的生成与刷新。。。。
- Flex实现多文件批量上传
- Flex中实现文件上传时的类型过滤
- 使用的 Microsoft 基础类 (MFC) 自动完成 Microsoft PowerPoint
- ruby 特殊字符cgi转换
- 用div+css布局,控件排布乱了,如何解决
- MAC下安装与配置MySQL
- MSVCRTD.LIB和LIBCMTD.LIB冲突 (转)
- 基于unity3d(C#)的有限状态机设计(二)
- C++ 通过代码托管的方式调用c#的httpAgilityPack库