`
wuxiao_v
  • 浏览: 45458 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex4 利用 Blazeds上传文件

 
阅读更多
  用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+Java+BlazeDS多文件上传

    - **前端**:在Flex应用中,用户可以选择或拖放多个文件到指定区域,Flex通过AJAX或HTTP协议,利用BlazeDS与Java服务器通信,发送文件数据。 - **后端**:Java服务器接收到请求后,对每个文件进行合法性检查,如...

    Flex图片上传实例

    而commons-fileupload-1.2.1.jar是Apache Commons FileUpload库的一个版本,它提供了处理HTTP多部分表单数据的能力,这是上传文件时常见的格式。 在后台,Java被用作服务器端的语言来接收、处理和存储上传的图片。...

    FLEX实现的一例多文件上传源码

    4. **.NET**:在后端,.NET框架提供了处理文件上传的能力。当FLEX前端将文件发送到服务器时,.NET服务端接收这些文件,可能包括验证文件类型、大小,存储到指定位置,或者进一步处理如数据库记录等。.NET提供了多种...

    Flex+Java Servlet文件上传实例

    总的来说,这个"Flex+Java Servlet文件上传实例"是一个典型的前后端交互案例,展示了如何利用Flex构建用户友好的文件选择和上传界面,然后通过Java Servlet在服务器端处理上传请求。开发者可以通过这个实例学习到...

    BlazeDS 数据通信技术

    #### 三、利用Blazeds上传文件 使用BlazeDS上传文件涉及几个关键步骤: 1. **创建Flex前端界面**:设计一个包含文件上传控件的Flex用户界面。 2. **配置BlazeDS通道**:确保Flex前端正确配置了与服务器端通信所需...

    基于Flex开发的多文件上传控件,及在.Net平台下使用该控件的Demo.zip

    本文将深入探讨如何利用Flex技术开发一个多文件上传控件,并在.Net平台上进行有效集成与应用。我们将从Flex的基本概念入手,逐步解析控件开发过程,然后介绍在.Net环境下的使用方法,最后通过一个Demo来展示其实现...

    asp.net基于Flex的上传控件(多文件)

    3. **上传文件**:文件选择后,你需要使用`FileReference.upload()`方法将文件发送到服务器。这个方法需要服务器端的URL和HTTP方法(通常是POST)。在上传过程中,可以通过监听`data`和`progress`事件来获取上传进度...

    flex 怎么检测文件大小.

    FileReference对象提供了选择本地文件、读取文件内容以及上传文件的能力。在选择文件后,可以调用`FileReference.size`属性来获取文件的大小,单位为字节。例如: ```actionscript private function fileSelected...

    BatchImageUpload

    4. **BlazeDS**:BlazeDS是Adobe提供的一个免费的服务器端数据服务组件,它允许Flex应用与Java应用程序进行实时数据交换。在批量上传图片时,我们需要在BlazeDS上创建一个接收文件的端点,例如一个Servlet或Spring...

    flex 加java开发的bbs项目源码

    6. "FileUpload.zip":与"flex文件上传.pdf"相似,这可能是一个文件上传组件或示例代码,用于辅助实现Flex应用中的文件上传功能。 通过这些资源,开发者可以深入了解Flex与Java的集成开发,包括客户端的用户界面...

    Flex开发的稿件管理

    Flex的FileReference类可以方便地处理文件上传操作。 2. **稿件分类与管理**:系统能够根据类型、作者、状态等条件对稿件进行分类和搜索。这涉及到数据模型的设计和数据过滤机制,Flex的数据绑定机制可以帮助简化这...

    Flex超炫相册

    《Flex超炫相册》项目是一款利用Adobe Flex技术与Java后台服务相结合的在线相册应用。Flex作为前端展示层框架,以其强大的富互联网应用程序(RIA)开发能力,为用户提供直观、交互性强的用户体验。在该项目中,Flex...

    IT技术文章示例

    利用BlazeDS,Flex客户端可以订阅Java服务器上的事件,实时获取更新数据,同时也可以调用服务器端的业务逻辑方法。 ### 10. ASP.NET的线程同步问题 ASP.NET是Microsoft提供的一种Web开发框架,它使用线程池来处理...

    gilead hibernate lazyload例子

    Gilead,全称为Hibernate for Flex,是用于Flex和Hibernate之间的数据绑定工具,它提供了一种在Flex客户端和Hibernate服务端之间通信的方法,使得Flex应用程序可以利用Hibernate的懒加载功能。然而,由于历史原因,...

Global site tag (gtag.js) - Google Analytics