`
windmark
  • 浏览: 32381 次
社区版块
存档分类
最新评论

Flex AMF Upload Demo

    博客分类:
  • Flex
 
阅读更多

java端:写一个名为ZhuaTuSerlvet的Serlvet,这个类需要用到flex-messaging-core.jar这个包.
    需要用到SerializationContext,ASObjectAmf3Input,Amf3Output这几个类(
   

 import flex.messaging.io.SerializationContext;
    import flex.messaging.io.amf.ASObject;
    import flex.messaging.io.amf.Amf3Input;
    import flex.messaging.io.amf.Amf3Output;
    )

 


    其中doPost方法的内容如下:

public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

             Amf3Input amf3in = new Amf3Input(context);  
            Amf3Output amf3out = new Amf3Output(context);  
            ByteArrayOutputStream stream = new ByteArrayOutputStream();  
            amf3in.setInputStream(new DataInputStream(request.getInputStream()));  
            
            String uploadPath = "c:/";
        response.setContentType("application/octet-stream");
            InputStream is = request.getInputStream();
            try {
             int size = 0;
             byte[] b = new byte[100000];
             byte[] tmp = new byte[100000];
             int len = 0;
             long time = System.currentTimeMillis();
             File file = new File(uploadPath + time + ".png");
             DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
             while ((len = is.read(tmp)) != -1) {
                 dos.write(tmp, 0, len);
                 size += len;
             }
             dos.flush();
             dos.close();
             
             //System.out.println("图片的保存路径是: " + file.getAbsolutePath());
                 
             //返回文件保存路径
             ASObject message1 = new ASObject(); 
             //像HashMap一样设置变量
              message1.put("path", file.getAbsolutePath());  
              amf3out.setOutputStream(stream);  
             amf3out.writeObject(message1);  
             amf3out.flush();  
             response.getOutputStream().write(stream.toByteArray());  
            } catch (IOException e) {
                    e.printStackTrace();
            }
    }

 


flex端:
   

 /**
    * 上传图片到服务器
    */ 
    public function uploadFile():void{
        var request:URLRequest = new URLRequest("http://192.168.3.139:8989/1test/servlet/ZhuaTuSerlvet");
        loader = new URLLoader();
        
        request.method=URLRequestMethod.POST;
        request.contentType = "application/octet-stream";
        request.data = new JPEGEncoder(85).encode(imgBD);
        //以二进制形式通信.不加此行会报空指针异常
        loader.dataFormat = URLLoaderDataFormat.BINARY;  
        loader.load(request);
        
        loader.addEventListener(Event.COMPLETE,onComplete);
        //loader.addEventListener(IOErrorEvent.IO_ERROR,onError);
        //loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onSecurityError);
    }

    /**
     * 上传成功 
     */            
    public function onComplete(event:Event):void{
        switch(event.type){  
            case Event.COMPLETE:  
                var bytes:ByteArray = loader.data as ByteArray;  
                var obj:Object = bytes.readObject();  
                //遍历所有参数
                //for(var key:* in obj){  
                    //Alert.show(key+":"+obj[key]);  
                //}  
                Alert.show("上传成功,图片保存在 " + obj["path"]);  
                break;  
        
        }  
    }

 

开源组件:http://code.google.com/p/flexupload/

 Sample:http://www.chaosm.net/blog/2011/08/14/upload-multiple-files-in-adobe-air-with-zend-amf-and-flex/

 

分享到:
评论

相关推荐

    AMF.rar_FluorineFx_FluorineFx amf_amf__flex_flex amf

    标题中的"AMF.rar_FluorineFx_FluorineFx amf_amf__flex_flex amf"表明这是一个关于AMF(Action Message Format)技术的压缩包,其中包含了FluorineFx的相关资料。FluorineFx是.NET平台上开源的Adobe Flash Remoting...

    flex与amf

    Flex与AMF(Action Message Format)是Web开发中的关键技术,尤其在构建富互联网应用程序(RIA)时。Flex作为Adobe开发的开源框架,主要用于创建交互式的、基于Flash的用户界面,而AMF则是一种高效的二进制数据序列...

    spring-flex集成-demo

    在"spring-flex集成-demo"中,我们可以学习到以下关键知识点: 1. **Spring框架**:Spring是Java平台上的一个核心框架,它提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等核心功能,以及对其他各种框架的...

    AMF抓取flex页面数据

    AMF(Action Message Format)是Adobe开发的一种二进制数据交换格式,主要用于提高Flex和服务器之间的通信效率。本教程将详细介绍如何抓取使用AMF协议的Flex页面数据,并涉及模拟登录和页面抓取的相关知识。 1. **...

    FlexDemo.rar

    FlexDemo.rar是一个包含Flex、BlazeDS和Spring框架整合示例的压缩包。这个压缩包主要是为了演示如何在Flex前端应用中实现与后端服务的数据交互,特别是利用BlazeDS进行实时数据推送以及消息订阅的功能。以下是关于...

    flex4组建以及DEMO实例.安装序列号

    下面将详细阐述Flex4的主要组件、Demo实例及其在实际应用中的运用。 1. Flex4组件系统: Flex4引入了Spark组件集,与原有的MX组件集相比,Spark组件具有更好的可定制性和性能优化。Spark组件基于Flex4的图形渲染...

    flex与java通信的完整demo

    在这个示例中,"flex与java通信的完整demoflex与java通信的完整demo"实现了实时通信功能,可能采用了WebSocket或PollingDuplex等技术。WebSocket提供全双工通信,实现即时消息推送;PollingDuplex是一种模拟双向...

    flex Demo

    这个“flex Demo”很可能是为了展示Flex在构建桌面应用,特别是与远程Java客户端交互方面的功能。下面将详细讨论Flex的相关知识点。 1. **Flex框架**:Flex是一个开源的开发框架,它提供了丰富的用户界面组件库,...

    入门级的FLEX教程和DEMO

    这个入门级的Flex教程和DEMO涵盖了基础到进阶的知识点,非常适合初学者掌握Flex的基本概念和编程技巧。 1. **Flex简介**:Flex是一种基于MXML和ActionScript的开发环境,用于创建具有丰富图形和动态交互性的Web应用...

    Flex-Java-Demo.rar_flex_flex 控件

    在"Flex-Java-Demo.rar_flex_flex 控件"这个压缩包中,我们很显然会发现一个关于Flex与Java互操作性的演示项目。下面将详细探讨相关的知识点。 1. **Flex**:Flex是由Adobe公司开发的一种开源框架,用于构建基于...

    flex与java远程传值demo

    下面将详细介绍这个“flex与java远程传值demo”的各个组成部分及其工作原理。 1. Flex项目模块: Flex是一种基于ActionScript和MXML的开源框架,用于构建RIA。在本项目中,Flex作为用户界面,使用BlazeDS库来与...

    FlexDemo

    - ** BlazeDS/LiveCycle Data Services (LCDS) **:Adobe提供的中间件,允许Flex客户端与Java服务器进行双向通信,实现AMF(Action Message Format)数据交换。 - **配置篇**:配置涉及Flex客户端与Java服务器的...

    flexDemo实现引擎搜索

    3. ** BlazeDS**: BlazeDS是Adobe提供的一个免费服务器端组件,它允许Flex应用程序与Java后台服务进行通信,通过AMF(Action Message Format)进行数据交换。在FlexDemo中,BlazeDS可能作为Flex与J2EE之间的桥梁。 ...

    flexdemo flex+java访问数据库

    在"flexdemo flex+java访问数据库"这个主题中,我们主要探讨的是如何使用Flex作为前端开发工具,与Java后端相结合,实现对数据库的交互。 Flex提供了ActionScript编程语言,它是基于ECMAScript的一个方言,用于在...

    Flex与Java整合demo

    总的来说,Flex与Java的整合涉及Flex客户端与Java服务器间的通信,通常通过AMF(Action Message Format)协议,利用BlazeDS或LCDS实现数据交换。在MyEclipse这样的IDE中配置整合,能够方便地进行开发、调试和部署,...

    Flex + Zend AMF + MYSQL + WAMP 新手指南

    标题中的“Flex + Zend AMF + MYSQL + WAMP 新手指南”揭示了本文将要讨论的是一个关于构建基于Web的应用程序的技术栈,其中包含了前端、后端和数据库的相关技术。让我们逐一深入理解这些技术。 1. **Flex**: ...

    ColdFusion Flex intergeration demo 1

    《ColdFusion与Flex集成应用探索——以"ColdFusion Flex intergeration demo 1"为例》 在当今的Web开发领域,ColdFusion和Flex是两种强大的技术,它们分别在服务器端和客户端展现出了各自的优势。ColdFusion,由...

    Flex WebService Demo

    Flex支持多种Web服务标准,如SOAP(简单对象访问协议)、REST(表述性状态转移)和AMF(动作消息格式)。在Flex WebService Demo中,很可能使用了这些技术之一来调用远程服务器上的Web服务接口,获取或发送数据。 ...

    flex2Demo实例

    6. **服务访问**:Flex 2能够方便地调用Web服务,如SOAP、RESTful或AMF(Action Message Format)服务,以便与服务器端进行数据交换。 7. **状态管理**:Flex 2允许为应用程序定义不同的状态,例如“初始”、“编辑...

    Flex 在web中的应用实例

    Flex可通过AMF(Action Message Format)与后端服务器进行数据交换,这种二进制协议提高了数据传输效率。此外,Flex还支持SOAP、RESTful等服务接口,能够与各种Web服务器(如Java、PHP、.NET)无缝集成。 五、Flex...

Global site tag (gtag.js) - Google Analytics