使用FLEX进行多文件上传和自定义上传信息
2009-01-19 11:55:04 来源:WEB开发网在Web应用中上传文件是比较常见的需求,在这里通过一个实际应用向大家介绍一下在Flex下如何进行多文件上传,并在上传文件的同时提供一些自定义描述信息以便数据逻辑处理。
功能需求
首先通过以下界面了解一下需求:
主要功能包括:
1)允许添加多个上传的文件
2)自定义文件标题
3)可以对没上传的或正在上传的文件删除
4)上传过程把窗体隐藏在后台,不影响用户的其他的操作(这个就很简单,把窗体隐藏起来在主界面显示个上进工作按钮就可以了,需要的时候再点击一下查看进度)
定义文件上下传类
packageCodes
{
importHFSoftFx.HFSoftCoreFun;
importflash.events.DataEvent;
importflash.events.ProgressEvent;
importflash.net.FileReference;
importflash.net.URLRequest;
publicdynamicclassUploadFile
{
publicstaticvarDEFAULT:int=0;
publicstaticvarLOADING:int=1;
publicstaticvarCOMPLETE:int=2;
publicfunctionUploadFile()
{
}
privatevarmState:int=DEFAULT;
publicfunctiongetState():int
{
returnmState;
}
privatevarmName:String;
publicfunctiongetName():String
{
returnmName;
}
publicfunction setName(value:String):void
{
mName=value;
}
privatevarmSize:int;
publicfunctiongetSize():int
{
returnmSize;
}
publicfunctionsetSize(value:int):void
{
mSize=value;
}
privatevarmLoadSize:int;
publicfunctiongetLoadSize():int
{
returnmLoadSize;
}
publicfunctionsetLoadSize(value:int):void{
mLoadSize=value;
}
privatevarmFileRef:FileReference;
publicfunctiongetFileRef():FileReference
{
returnmFileRef;
}
publicfunctionsetFileRef(value:FileReference):void
{
mFileRef=value;
}
publicfunctionUpload(request:URLRequest,complete:Function=null,
progress:Function=null):void{
FileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,
function(event:DataEvent){
varstr:String= event.data.substr(1,event.data.length-1);
varx:XML=newXML(str);
if(x.Exception!=''&&x.Exception!=null)
{
HFSoftCoreFun.AlertError(x.Exception);
}
else
{
mState=COMPLETE;
if(complete!=null)
complete();
}
});
FileRef.addEventListener(ProgressEvent.PROGRESS
,function(event:ProgressEvent){
LoadSize=event.bytesLoaded;
Size=event.bytesTotal;
if(progress!=null)
progress();
});
mState=LOADING;
FileRef.upload(request);
}
}
}
赞助商链接