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(Action Message Format)技术的压缩包,其中包含了FluorineFx的相关资料。FluorineFx是.NET平台上开源的Adobe Flash Remoting...
Flex与AMF(Action Message Format)是Web开发中的关键技术,尤其在构建富互联网应用程序(RIA)时。Flex作为Adobe开发的开源框架,主要用于创建交互式的、基于Flash的用户界面,而AMF则是一种高效的二进制数据序列...
在"spring-flex集成-demo"中,我们可以学习到以下关键知识点: 1. **Spring框架**:Spring是Java平台上的一个核心框架,它提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等核心功能,以及对其他各种框架的...
AMF(Action Message Format)是Adobe开发的一种二进制数据交换格式,主要用于提高Flex和服务器之间的通信效率。本教程将详细介绍如何抓取使用AMF协议的Flex页面数据,并涉及模拟登录和页面抓取的相关知识。 1. **...
FlexDemo.rar是一个包含Flex、BlazeDS和Spring框架整合示例的压缩包。这个压缩包主要是为了演示如何在Flex前端应用中实现与后端服务的数据交互,特别是利用BlazeDS进行实时数据推送以及消息订阅的功能。以下是关于...
下面将详细阐述Flex4的主要组件、Demo实例及其在实际应用中的运用。 1. Flex4组件系统: Flex4引入了Spark组件集,与原有的MX组件集相比,Spark组件具有更好的可定制性和性能优化。Spark组件基于Flex4的图形渲染...
在这个示例中,"flex与java通信的完整demoflex与java通信的完整demo"实现了实时通信功能,可能采用了WebSocket或PollingDuplex等技术。WebSocket提供全双工通信,实现即时消息推送;PollingDuplex是一种模拟双向...
这个“flex Demo”很可能是为了展示Flex在构建桌面应用,特别是与远程Java客户端交互方面的功能。下面将详细讨论Flex的相关知识点。 1. **Flex框架**:Flex是一个开源的开发框架,它提供了丰富的用户界面组件库,...
这个入门级的Flex教程和DEMO涵盖了基础到进阶的知识点,非常适合初学者掌握Flex的基本概念和编程技巧。 1. **Flex简介**:Flex是一种基于MXML和ActionScript的开发环境,用于创建具有丰富图形和动态交互性的Web应用...
在"Flex-Java-Demo.rar_flex_flex 控件"这个压缩包中,我们很显然会发现一个关于Flex与Java互操作性的演示项目。下面将详细探讨相关的知识点。 1. **Flex**:Flex是由Adobe公司开发的一种开源框架,用于构建基于...
下面将详细介绍这个“flex与java远程传值demo”的各个组成部分及其工作原理。 1. Flex项目模块: Flex是一种基于ActionScript和MXML的开源框架,用于构建RIA。在本项目中,Flex作为用户界面,使用BlazeDS库来与...
- ** BlazeDS/LiveCycle Data Services (LCDS) **:Adobe提供的中间件,允许Flex客户端与Java服务器进行双向通信,实现AMF(Action Message Format)数据交换。 - **配置篇**:配置涉及Flex客户端与Java服务器的...
3. ** BlazeDS**: BlazeDS是Adobe提供的一个免费服务器端组件,它允许Flex应用程序与Java后台服务进行通信,通过AMF(Action Message Format)进行数据交换。在FlexDemo中,BlazeDS可能作为Flex与J2EE之间的桥梁。 ...
在"flexdemo flex+java访问数据库"这个主题中,我们主要探讨的是如何使用Flex作为前端开发工具,与Java后端相结合,实现对数据库的交互。 Flex提供了ActionScript编程语言,它是基于ECMAScript的一个方言,用于在...
总的来说,Flex与Java的整合涉及Flex客户端与Java服务器间的通信,通常通过AMF(Action Message Format)协议,利用BlazeDS或LCDS实现数据交换。在MyEclipse这样的IDE中配置整合,能够方便地进行开发、调试和部署,...
标题中的“Flex + Zend AMF + MYSQL + WAMP 新手指南”揭示了本文将要讨论的是一个关于构建基于Web的应用程序的技术栈,其中包含了前端、后端和数据库的相关技术。让我们逐一深入理解这些技术。 1. **Flex**: ...
《ColdFusion与Flex集成应用探索——以"ColdFusion Flex intergeration demo 1"为例》 在当今的Web开发领域,ColdFusion和Flex是两种强大的技术,它们分别在服务器端和客户端展现出了各自的优势。ColdFusion,由...
Flex支持多种Web服务标准,如SOAP(简单对象访问协议)、REST(表述性状态转移)和AMF(动作消息格式)。在Flex WebService Demo中,很可能使用了这些技术之一来调用远程服务器上的Web服务接口,获取或发送数据。 ...
6. **服务访问**:Flex 2能够方便地调用Web服务,如SOAP、RESTful或AMF(Action Message Format)服务,以便与服务器端进行数据交换。 7. **状态管理**:Flex 2允许为应用程序定义不同的状态,例如“初始”、“编辑...
Flex可通过AMF(Action Message Format)与后端服务器进行数据交换,这种二进制协议提高了数据传输效率。此外,Flex还支持SOAP、RESTful等服务接口,能够与各种Web服务器(如Java、PHP、.NET)无缝集成。 五、Flex...