as3端
- package?com.czw.apps.base?
- {?
- ????import?flash.events.*;?
- ????import?flash.net.*;?
- ????import?flash.utils.*;?
- ????[Event(name="ioError",?type="flash.events.IOErrorEvent")]?
- ????[Event(name="complete",?type="flash.events.Event")]?
- ?????
- ????public?class?FileUpload?extends?EventDispatcher?
- ????{?
- ????????private?var?file:FileReference;?
- ?????????
- ????????private?var?_fileType:String="All";?
- ?????????
- ????????[Bindable]?
- ????????[Inspectable(category="General",?defaultValue="")]?
- ????????private?var?_file_name:String;?
- ?????????
- ????????[Bindable]?
- ????????[Inspectable(category="General",?defaultValue="")]?
- ????????private?var?_process_event:ProgressEvent;?
- ?????????
- ????????[Bindable]?
- ????????[Inspectable(category="General",?defaultValue="Image",?enumeration="Image,Word,Excel,Pdf,All")]?
- ????????public?function?get?fileType():String?
- ????????{?
- ????????????return?_fileType;?
- ????????}?
- ????????public?function?set?fileType(value:String):void?
- ????????{?
- ????????????this._fileType=value;?
- ????????}?
- ?????????
- ????????public?function?get?actualFileType():String?
- ????????{?
- ????????????return?file.type.substring(1,file.type.length);?
- ????????}?
- ?????????
- ????????public?function?FileUpload()?
- ????????{?
- ????????????file?=?new?FileReference();?
- ????????????configureListeners(file);?
- ????????}?
- ?????????
- ????????public?function?get?data():ByteArray{?
- ????????????if(file!=null)?
- ????????????{?
- ????????????????return?file.data;?
- ????????????}?
- ????????????return?null;?
- ????????}?
- ?????????
- ????????public?function?get?fileName():String?
- ????????{?
- ????????????return?_file_name;?
- ????????}?
- ?????????
- ????????public?function?get?processEvent():ProgressEvent?
- ????????{?
- ????????????return?_process_event;?
- ????????}?
- ?????????
- ????????public?function?browse():void?
- ????????{?
- ????????????file.browse(types);?
- ????????}?
- ?????????
- ????????private?function?configureListeners(dispatcher:IEventDispatcher):void?{?
- ????????????dispatcher.addEventListener(Event.CANCEL,?eventHandler);?
- ????????????dispatcher.addEventListener(Event.COMPLETE,?eventHandler);?
- ????????????dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS,?eventHandler);?
- ????????????dispatcher.addEventListener(IOErrorEvent.IO_ERROR,?eventHandler);?
- ????????????dispatcher.addEventListener(Event.OPEN,?eventHandler);?
- ????????????dispatcher.addEventListener(ProgressEvent.PROGRESS,?progressHandler);?
- ????????????dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR,?eventHandler);?
- ????????????dispatcher.addEventListener(Event.SELECT,?selectHandler);?
- ????????????dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);?
- ????????}?
- ?????????
- ????????private?function?eventHandler(event:Event):void?{?
- ????????????this.dispatchEvent(event);?
- ????????}?
- ?????????
- ????????private?function?uploadCompleteDataHandler(event:DataEvent):void?{?
- ????????????trace("uploadCompleteData:?"?+?event.data);?
- ????????????_file_name=event.data?as?String;?
- ????????}?
- ?????????
- ????????private?function?progressHandler(event:ProgressEvent):void?{?
- ????????????this._process_event=event;?
- ????????}?
- ?????????
- ????????private?function?selectHandler(event:Event):void?{?
- ????????????_file_name?=?FileReference(event.target).name;?
- ????????????trace("selectHandler:?name="?+?_file_name);?
- ????????????file.load();?
- ????????}?
- ?????????
- ????????private?function?getImageTypeFilter():FileFilter?
- ????????{?
- ????????????return?new?FileFilter("Images?(*.jpg,?*.jpeg,?*.gif,?*.png)",?"*.jpg;*.jpeg;*.gif;*.png");?
- ????????}?
- ?????????
- ????????private?function?getWordTypeFilter():FileFilter?
- ????????{?
- ????????????return?new?FileFilter("Word?Files?(*.doc,?*.docx)",?"*.doc;*.docx");?
- ????????}?
- ?????????
- ????????private?function?getExcelTypeFilter():FileFilter?
- ????????{?
- ????????????return?new?FileFilter("Excel?Files?(*.xls,?*.xlsx)",?"*.xls;*.xlsx");?
- ????????}?
- ?????????
- ????????private?function?getPdfTypeFilter():FileFilter?
- ????????{?
- ????????????return?new?FileFilter("Pdf?Files?(*.pdf)","*.pdf");?
- ????????}?
- ?????????
- ????????private?function?get?types():Array?{?
- ????????????switch(_fileType)?
- ????????????{?
- ????????????????case?"Image":?
- ????????????????????return?new?Array(getImageTypeFilter());?
- ????????????????case?"Word":?
- ????????????????????return?new?Array(getWordTypeFilter());?
- ????????????????case?"Excel":?
- ????????????????????return?new?Array(getExcelTypeFilter());?
- ????????????????case?"Pdf":?
- ????????????????????return?new?Array(getPdfTypeFilter());?
- ????????????????default:?
- ????????????????????return?[getPdfTypeFilter(),getImageTypeFilter(),getWordTypeFilter(),getExcelTypeFilter()];?
- ????????????}?
- ????????????return?null;?
- ????????}?
- ????}?
- }?
flex端
?
- <fx:Declarations>?
- <base:FileUpload?id="uploadFile"?complete="browsComplete()"/>?
- </fx:Declarations>?
- <fx:Script>?
- private?function?uploadBrows(attachmentType:int):void?
- ????????????{?
- ????????????????if(loading)?
- ????????????????{?
- ????????????????????if(alert==null)?
- ????????????????????{?
- ????????????????????????alert=new?Alert;?
- ????????????????????????alert.title="文件上传提示";?
- ????????????????????????alert.text="文件上传中,请稍后";?
- ????????????????????}?
- ????????????????????PopUpManager.addPopUp(alert,?parent,?true);?
- ????????????????????PopUpManager.centerPopUp(alert);?
- ????????????????????return;?
- ????????????????}?
- ????????????????loading=true;?
- ????????????????this.attachmentType=attachmentType;?
- ????????????????if(attachmentType==8){?
- ????????????????????uploadFile.fileType="Image";?
- ????????????????}else{?
- ????????????????????uploadFile.fileType="All";?
- ????????????????}?
- ????????????????uploadFile.browse();?
- ????????????}?
- //上传文件成功回调函数
private function browsComplete():void
{}
- </fx:Script>?
- <s:Button?left="108"?bottom="2"?width="45"?label="上传"?click="uploadBrows(8);"?
- ??????????????????????????enabled="{updateFlag||addFlag}"/>?