用Flex做业务经常会碰到各种类型的文件上传,如FTP上传、Http上传或者WEB服务形式上传,本文说的利用Blazeds上传文件有点类似Http上传,其原理就是客户端发送byte流,然后服务器端flex.messaging.MessageBrokerServlet接收byte流并生成文件。阅读本文最好了解Flex RemoteObject的使
用,了解Blazeds的service调用。
1、新建Blazeds的文件上传服务,其实就是一个普通的Java类
Public class FileUpDownloadService{
/**
*
* <p>Description:文件上传</p>
* @param content,文件内容
* @param fileType,文件类型
* @return
* @throws Exception
* @author Marcus
* @date 2010-8-31 下午03:57:10
*/
public void uploadFile(byte[] content, String fileType)throws Exception{
File file = new File(文件名+ fileType);
//write file
FileOutputStream stream = new FileOutputStream(file);
stream.write(content);
stream.close();
}
}
2、配置remoting-config.xml文件
<destination id="fileUpDownloadService" channels="my-amf">
<properties>
<source>FileUpDownloadService</source>
<scope>application</scope>
</properties>
</destination>
3、flex客户端使用FileRefrence、remoteobject组件进行文件上传
1)FileRefrence用于文件选择;
2)remoteobject用户文件上传
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="800" minHeight="600" creationComplete="init()" width="370" height="180">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private var file:FileReference = new FileReference();
protected function ro_resultHandler(event:ResultEvent):void
{
Alert.show("文件上传成功!");
}
protected function init():void{
//选择文件后,加载文件
file.addEventListener(Event.SELECT, selectHandler);
}
private function selectHandler(event:Event):void {
file.load(); //加载文件
}
protected function ro_faultHandler(event:FaultEvent):void
{
Alert.show("文件上传失败,"+event.fault.faultString);
}
protected function btnBrows_clickHandler(event:MouseEvent):void
{
file.browse();
}
protected function btnUpload_clickHandler(event:MouseEvent):void
{
ro.uploadFile(file.data, file.type);
}
]]>
</fx:Script>
<fx:Declarations>
<s:RemoteObject id="ro" destination="fileUpDownloadService"
result="ro_resultHandler(event)" fault="ro_faultHandler(event)"/>
</fx:Declarations>
<s:Button id="btnBrows" click="btnBrows_clickHandler(event)" label="选择文件" x="57" y="60"/>
<s:Button id="btnUpload" click="btnUpload_clickHandler(event)" label="上传" x="145" y="60"/>
</s:Application>
分享到:
相关推荐
- **前端**:在Flex应用中,用户可以选择或拖放多个文件到指定区域,Flex通过AJAX或HTTP协议,利用BlazeDS与Java服务器通信,发送文件数据。 - **后端**:Java服务器接收到请求后,对每个文件进行合法性检查,如...
而commons-fileupload-1.2.1.jar是Apache Commons FileUpload库的一个版本,它提供了处理HTTP多部分表单数据的能力,这是上传文件时常见的格式。 在后台,Java被用作服务器端的语言来接收、处理和存储上传的图片。...
4. **.NET**:在后端,.NET框架提供了处理文件上传的能力。当FLEX前端将文件发送到服务器时,.NET服务端接收这些文件,可能包括验证文件类型、大小,存储到指定位置,或者进一步处理如数据库记录等。.NET提供了多种...
总的来说,这个"Flex+Java Servlet文件上传实例"是一个典型的前后端交互案例,展示了如何利用Flex构建用户友好的文件选择和上传界面,然后通过Java Servlet在服务器端处理上传请求。开发者可以通过这个实例学习到...
#### 三、利用Blazeds上传文件 使用BlazeDS上传文件涉及几个关键步骤: 1. **创建Flex前端界面**:设计一个包含文件上传控件的Flex用户界面。 2. **配置BlazeDS通道**:确保Flex前端正确配置了与服务器端通信所需...
本文将深入探讨如何利用Flex技术开发一个多文件上传控件,并在.Net平台上进行有效集成与应用。我们将从Flex的基本概念入手,逐步解析控件开发过程,然后介绍在.Net环境下的使用方法,最后通过一个Demo来展示其实现...
3. **上传文件**:文件选择后,你需要使用`FileReference.upload()`方法将文件发送到服务器。这个方法需要服务器端的URL和HTTP方法(通常是POST)。在上传过程中,可以通过监听`data`和`progress`事件来获取上传进度...
FileReference对象提供了选择本地文件、读取文件内容以及上传文件的能力。在选择文件后,可以调用`FileReference.size`属性来获取文件的大小,单位为字节。例如: ```actionscript private function fileSelected...
4. **BlazeDS**:BlazeDS是Adobe提供的一个免费的服务器端数据服务组件,它允许Flex应用与Java应用程序进行实时数据交换。在批量上传图片时,我们需要在BlazeDS上创建一个接收文件的端点,例如一个Servlet或Spring...
6. "FileUpload.zip":与"flex文件上传.pdf"相似,这可能是一个文件上传组件或示例代码,用于辅助实现Flex应用中的文件上传功能。 通过这些资源,开发者可以深入了解Flex与Java的集成开发,包括客户端的用户界面...
Flex的FileReference类可以方便地处理文件上传操作。 2. **稿件分类与管理**:系统能够根据类型、作者、状态等条件对稿件进行分类和搜索。这涉及到数据模型的设计和数据过滤机制,Flex的数据绑定机制可以帮助简化这...
《Flex超炫相册》项目是一款利用Adobe Flex技术与Java后台服务相结合的在线相册应用。Flex作为前端展示层框架,以其强大的富互联网应用程序(RIA)开发能力,为用户提供直观、交互性强的用户体验。在该项目中,Flex...
利用BlazeDS,Flex客户端可以订阅Java服务器上的事件,实时获取更新数据,同时也可以调用服务器端的业务逻辑方法。 ### 10. ASP.NET的线程同步问题 ASP.NET是Microsoft提供的一种Web开发框架,它使用线程池来处理...
Gilead,全称为Hibernate for Flex,是用于Flex和Hibernate之间的数据绑定工具,它提供了一种在Flex客户端和Hibernate服务端之间通信的方法,使得Flex应用程序可以利用Hibernate的懒加载功能。然而,由于历史原因,...