Flex用传统方式与Servlet交互

用Flex+Java的组合方式做项目时,难免会遇到Flex用Request的方式与后台直接交互,比如上传文件,怎么做呢?

首先看看Flex端要用到的类:

1、URLRequest :与后台交互。flash.net包中。官方解释:URLRequest 类可捕获单个 HTTP 请求中的所有信息。

     常用方法:URLRequest(url:String)。参数url即传统的符合标准的uri,

     如:

     var request:URLRequest=new URLRequest("servlets/UploadImgServlet?filename=a.jpg");

可是这个类怎么与后台交互呢?官方解释:

     将 URLRequest 对象传递给 Loader、URLStream 和 URLLoader 类以及其他加载操作的 load() 方法以启动 URL 下载,并传递给 FileReference 类的 upload()download() 方法。

 

那么就用到下面的类了。

 

2、FileReference:上传或下载文件的类(文中为上传的实现)。flash.net包中。官方解释:FileReference 类提供了在用户计算机和服务器之间上载和下载文件的方法。

     用法:

     var fr:FileReference=new FileReference();
     fr.addEventListener(Event.SELECT,fileSelected);
     fr.addEventListener(Event.COMPLETE,fileCompleted);
     fr.addEventListener(ProgressEvent.PROGRESS,uploading);

 在监听事件中利用FileReference的upload方法将URLRequest传到后台:

     private function fileSelected(e:Event):void
     {
            request=new URLRequest("servlets/UploadImgServlet?filename=a.jpg");
            fr.upload(request);
      }

 

这样就传到后台,用Java接收吧。

 

怎么点击按钮弹出浏览文件窗口呢?FileReference还有一个方法browse(arr:Array)。这个Array里是什么呢?就是下面的东西:

 

3、FileFilter:用于弹出文件浏览窗口。同样在flash.net包中。官方解释:FileFilter 类用于指示在调用 FileReference.browse() 方法、FileReferenceList.browse() 方法或调用 File、FileReference 或 FileReferenceList 对象的 browse 方法时显示的文件浏览对话框中显示用户系统上的哪些文件。

用法:

      var jpgFilter=new FileFilter("jpg Files","*.jpg");

      var gifFilter=new FileFilter("gif Files","*.gif");

      var arr:Array=new Array(jpgFilter,gifFilter);

在按钮的点击事件中:

      fr.browse(arr);

 

OK了。

你可能感兴趣的:(.net,浏览器,servlet,Flex,Flash)