Flex上传文件功能

写过很多文件上传的功能,包括AJAX实现动态监控上传进度的,现在看到了FLEX实现文件上传功能,还真是很方便,没什么好说的,上代码:

upload.mxml

<? xml version="1.0" encoding="utf-8" ?>
< mx:Application  xmlns:mx ="http://www.adobe.com/2006/mxml"  creationComplete ="init()"  layout ="absolute"  width ="497"  height ="136"  backgroundGradientAlphas ="[1.0, 1.0]"  backgroundGradientColors ="[#F2F8F8, #45E7E5]" >
    
< mx:Script  source ="upload.as" ></ mx:Script >
    
< mx:Style >
        .myfont{font-size:13pt}
    
</ mx:Style >
    
< mx:Button  x ="10"  y ="95"  label ="上传文件"  click ="pickfile()"  styleName ="myfont" />
    
< mx:Label  x ="10"  y ="10"  text ="文件上传"  styleName ="myfont" />
    
< mx:ProgressBar  x ="10"  y ="40"  width ="457"  themeColor ="#F20D7A"  minimum ="0"  mode ="manual"  maximum ="100"  id ="progress1"  label ="当前进度: 0%"  styleName ="myfont"  fontWeight ="normal" />
    
< mx:Label  x ="146"  y ="98"  width ="321"  id ="lbProgress"  styleName ="myfont"  textAlign ="right" />
</ mx:Application >

upload.as

 

 1  //  ActionScript file
 2  import  flash.events.Event;
 3  import  flash.net.FileFilter;
 4  import  flash.net.FileReference;
 5  private  var fileRef:FileReference  =   new  FileReference();
 6  private  function init(): void {
 7      
 8  }
 9 
10  private  function pickfile(): void {
11      var imageTypes:FileFilter  =   new  FileFilter( " 图片 (*.jpg, *.jpeg, *.gif,*.png) " " *.jpg; *.jpeg; *.gif; *.png " );
12      var textTypes:FileFilter  =   new  FileFilter( " 文本文件(*.txt " , " *.txt; " );
13      var officeType:FileFilter  =   new  FileFilter( " Office文件(*.doc, *.xls " , " *.doc; *.xls " );
14      var anyType:FileFilter  =   new  FileFilter( " 所有文件(*.*) " , " *.* " );
15      var allTypes:Array  =   new  Array(imageTypes, textTypes,officeType,anyType);
16      fileRef.addEventListener(Event.SELECT, selectHandler);
17      fileRef.addEventListener(Event.COMPLETE, completeHandler);
18      fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler);
19      fileRef.addEventListener( " ioError " , ioerrorHandler);
20       try {
21          var success:Boolean  =  fileRef.browse(allTypes);
22      } catch  (error:Error){
23          trace( " Unable to browse for files. " + error.toString());
24      }
25  }
26  private  function ioerrorHandler(event:Event): void {
27      trace( " Unable to upload file. " + event.toString());
28  }
29  private  function progressHandler(event:ProgressEvent): void {
30      lbProgress.text  =   "  已上传  "   +  (event.bytesLoaded / 1024 ).toFixed( 2 ) +   "  K,共  "   +  (event.bytesTotal / 1024 ).toFixed( 2 +   "  K " ;
31      var proc: uint  =  event.bytesLoaded  /  event.bytesTotal  *   100 ;
32      progress1.setProgress(proc,  100 );
33      progress1.label =   " 当前进度:  "   +   "   "   +  proc  +   " % " ;
34 
35  }
36  private     function selectHandler(event:Event): void {
37      var request:URLRequest  =   new  URLRequest( " http://localhost:9080/upload/upload.jsp " )
38       try
39      {
40          fileRef.upload(request);
41      }
42       catch  (error:Error)
43      {
44          trace( " Unable to upload file. " + error.toString());
45      }
46  }
47  private  function completeHandler(event:Event): void {
48      trace( " uploaded " );
49  }
50 
51 

效果图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值