`

flex 上传

    博客分类:
  • Flex
阅读更多

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  width="120" height="20" initialize="init()">
    <mx:Button x="0" y="0" width="120" height="20" id="_but" click="show()" />
    <mx:Script>
        <![CDATA[
            import flash.net.*;
            import flash.external.ExternalInterface;
            //定义http请求对象
            private var _https:URLRequest;
            //定义上传的文件对象
            private var _file:Object;
            //保存传入的配置
            private var _params:Object;
            //过滤后缀
            private var _types:Array;
            //上传加载方法
            public function init():void{
                //获取传入的参数
                _params = this.parameters;
                //加载容器宽度
                if(_params.width){
                    _but.width = _params.width;
                }
                if(_params.text){
                    _but.label = _params.text
                }
                //加载容器高度
                if(_params.height){
                    _but.height = _params.height;
                }
                if(_params.selectFlag){
                    //创建上传文件对象
                    _file = new FileReferenceList();
                }else{
                    //创建上传文件对象
                    _file = new FileReference();
                }
                //监听文件选择事件
                _file.addEventListener(Event.SELECT,_selectHeader);
                //如果外部处理方法有定义,则监听
                if(_params.complete){
                    //监听上传完成事件
                    _file.addEventListener(Event.COMPLETE,_completeHeader);
                }
                //如果外部处理异常方法有定义,则监听
                if(_params.error){
                    //监听http状态
                    _file.addEventListener(HTTPStatusEvent.HTTP_STATUS,_httpStatusHeader);
                    //监听io流状态
                    _file.addEventListener(IOErrorEvent.IO_ERROR,_ioErrorHeader);
                }
                //滚动条监听
                if(_params.progress){
                    _file.addEventListener(ProgressEvent.PROGRESS,_progressHeader);
                }
                _types = new Array();
                    //文件类型
                if(_params.filterMsg && _params.filter){
                    _types.push(new FileFilter(_params.filterMsg,_params.filter));
                }else{
                    //默认限制上传类型
                    _types.push(new FileFilter("All Files(*.*)","*.*"));
                    _types.push(new FileFilter("Images (*.jpg,*.png,*.jpeg,*.gif)","*.jpg;*.png;*.jpeg;*.gif"));
                    _types.push(new FileFilter("Text Files (*.txt, *.rtf)","*.txt;*.rtf"));
                }
                //创建请求对象
                _https= new URLRequest();
                //加载请求地址
                if(_params.url){
                    _https.url = _params.url;
                }else if(_params.error){
                    //如果没有传入必传配置:url请求地址,则回调错误
                    ExternalInterface.call(_params.error,{
                        msg:"Param Error:url is null!"
                    });
                    return;
                }
                _https.contentType = "multipart/form-data";
                _https.method = "POST";
                var urldata:URLVariables = new URLVariables();
                if(_params.uid){
                    urldata.userid=_params.uid;
                }
                _https.data=urldata;
            }
            //加载上传选择窗口
            public function show():void{
                _file.browse(_types);
            }
            //处理监听文件选择的方法
            private function _selectHeader(e:Event):void{
                if(_params.selectFlag){
                   
                }
                _file.upload(_https,"file");
            }
            //处理文件上传完成方法
            private function _completeHeader(e:Event):void{
                ExternalInterface.call(_params.complete,{
                    filename:_file.name,
                    filesize:_file.size
                });
            }
            //处理http请求状态方法
            private function _httpStatusHeader(e:HTTPStatusEvent):void{
                ExternalInterface.call(_params.error,{
                    msg:"Net error:"+e.status
                });
            }
            //处理io流异常方法
            private function _ioErrorHeader(e:IOErrorEvent):void{
                ExternalInterface.call(_params.error,{
                    msg:"IO error:"+e.text
                });
            }
            //滚动条回调
            private function _progressHeader(e:ProgressEvent):void{
                ExternalInterface.call(_params.progress,{
                    "totalsize":e.bytesTotal,
                    "currsize":e.bytesLoaded
                });
            }
        ]]>
    </mx:Script>
</mx:Application>

分享到:
评论

相关推荐

    flex上传文件夹插件

    Flex上传文件夹插件是一种基于Adobe Flex技术的组件,它扩展了Flex应用程序的功能,使得用户能够轻松地上传整个文件夹,而不仅仅是个别文件。在传统的Web应用中,上传文件通常局限于单个文件的选择,而Flex上传...

    flex上传控件,带进度、时间、速度显示

    Flex上传控件是一种基于Adobe Flex技术的用户界面组件,它允许用户在Web应用程序中上传文件。Flex是一个开源的开发框架,主要用于构建富互联网应用程序(RIA),它可以创建动态、交互式的Web应用,支持丰富的图形和...

    flash上传文件,flex上传,无刷新上传,php上传,含源码

    接着,我们来看“Flex上传”。Flex是基于ActionScript 3.0的开放源码框架,用于构建富互联网应用程序(RIA)。它可以利用Flash Player运行,提供更丰富的用户界面和交互体验。"upload(批量).fla"是一个Flex项目文件...

    FLEX上传文件,flex upload

    在标题“FLEX上传文件,flex upload”和描述“flex上传文件的例子,支持多文件上传。”中,我们关注的核心知识点是Flex中的文件上传功能。 文件上传是Web应用中的常见需求,特别是在处理用户提交的多媒体内容时。在...

    Flex上传文件与下载

    ### Flex与Servlet结合实现文件上传及下载功能 在Flex与Servlet技术结合的背景下,本文将详细介绍如何通过这两种技术实现文件的上传与下载功能。通过分析提供的代码片段,我们可以看到一个典型的Flex应用程序界面...

    flex上传下载 并解决中文乱码

    Flex上传下载功能在企业应用中十分常见,尤其是在处理大量数据交互时。Flex作为一个富客户端的开发框架,提供了强大的用户界面创建能力,同时支持与服务器之间的数据传输。在本主题中,我们将深入探讨如何使用Flex...

    Mobile FLEX上传文件

    Mobile FLEX上传文件是一种在移动设备上利用Adobe Flex技术实现文件上传至服务器的过程。Flex是基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA),它支持多种平台,包括移动设备。在本场景中,...

    flex 上传,包含服务端

    在本项目中,"flex上传"指的是利用Flex技术实现文件上传功能,而"包含服务端"则意味着这个项目不仅包括客户端的Flex代码,还包含了服务器端处理文件上传的逻辑。 1. **Flex客户端**:Flex客户端通常由ActionScript...

    Flex附件上传下载

    在Flex上传文件的场景中,我们需要创建一个自定义的HttpHandler,处理POST请求,并接收从Flex客户端传来的文件数据。接收到文件后,可以将其保存到服务器的指定位置。 下载部分则相对简单,通常由Flex客户端发起...

    flex 上传excel 导入数据库

    标题 "flex 上传excel 导入数据库" 涉及的技术点主要集中在使用Adobe Flex进行文件上传,特别是Excel文件,并将其数据导入到数据库中。Flex是一种开源的RIA(富因特网应用程序)开发框架,使用MXML和ActionScript...

    Flex 上传文件控件 (带java服务端)

    本项目提供了一个完整的Flex文件上传控件,且集成了Java服务端处理,允许用户上传文件到服务器,并能进行多文件或单文件选择,以及设置上传文件大小限制,同时展示上传进度条,为用户提供友好的交互体验。...

    FLEX上传下载的FLEX项目源码

    标题“FLEX上传下载的FLEX项目源码”暗示了这是一个包含实现文件上传和下载功能的FLEX项目源代码。FLEX中的上传下载功能是通过与服务器进行HTTP通信来实现的,通常涉及到XMLHttpRequest对象或者使用Flash Player的...

    flex上传

    在IT行业中,"flex上传"通常指的是使用Adobe Flex技术进行文件上传的操作。Flex是一种用于创建富互联网应用程序(RIA)的开放源代码框架,它允许开发者使用MXML和ActionScript构建交互式的用户界面,并与服务器端...

    仿163邮件的flex上传控件,跟随表单提交,随意控制

    这个压缩包中的资源,"仿163邮件的flex上传控件,跟随表单提交,js随意控制",显然是一个专门针对文件上传功能的解决方案,特别是对于那些希望模仿163邮箱上传体验的开发者来说,具有很高的参考价值。 Flex是一种...

    Flex 上传头像(带裁剪) 有演示地址 asp.net版

    在本案例中,“Flex 上传头像(带裁剪) 有演示地址 asp.net版”是一个基于Flex技术构建的图像上传和裁剪功能,特别适用于个人资料头像的处理。这个解决方案整合了服务器端的ASP.NET技术,提供了一种完整的前后端交互...

    Flex 上传组件(可选择文件类型)

    总的来说,创建一个Flex上传组件,允许用户选择特定类型的文件,并带有滚动条功能,需要结合使用`FileReferenceList`、`Button`、`List`和可能的`HTTPService`组件。通过对这些组件的属性和事件的配置,我们可以实现...

    flex 上传文件(.net)

    Flex上传文件到.NET服务器是一种常见的交互方式,尤其在开发富互联网应用程序时。本文将深入探讨Flex客户端如何与.NET服务器进行文件上传的详细过程,并提供关键的技术知识点。 首先,`Flex`是一个开源的富互联网...

    web flex上传

    综上所述,"web flex上传"涉及到的技术栈包括客户端的Flex和JavaScript,以及服务器端的Java Web和JSP。通过合理利用这些技术,可以创建一个功能完善的多文档上传功能,提供良好的用户体验。在实际项目中,还可以...

    Flex上传压缩文件到服务器路径并解压存进数据库

    本示例的主题“Flex上传压缩文件到服务器路径并解压存进数据库”涉及到的技术主要包括Flex客户端开发、服务器端处理、文件上传、文件压缩与解压以及数据库操作。下面将详细讲解这些知识点。 1. **Flex**: Flex是...

    Flex 上传多个文件

    在Flex中处理文件上传,特别是上传多个文件,是一个常见的需求,特别是在构建支持用户上传大量数据的应用程序时。 在Flex中实现多文件上传,首先需要理解FileReference类。FileReference是Flash Player提供的一个...

Global site tag (gtag.js) - Google Analytics