<?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上传文件夹插件是一种基于Adobe Flex技术的组件,它扩展了Flex应用程序的功能,使得用户能够轻松地上传整个文件夹,而不仅仅是个别文件。在传统的Web应用中,上传文件通常局限于单个文件的选择,而Flex上传...
Flex上传控件是一种基于Adobe Flex技术的用户界面组件,它允许用户在Web应用程序中上传文件。Flex是一个开源的开发框架,主要用于构建富互联网应用程序(RIA),它可以创建动态、交互式的Web应用,支持丰富的图形和...
接着,我们来看“Flex上传”。Flex是基于ActionScript 3.0的开放源码框架,用于构建富互联网应用程序(RIA)。它可以利用Flash Player运行,提供更丰富的用户界面和交互体验。"upload(批量).fla"是一个Flex项目文件...
在标题“FLEX上传文件,flex upload”和描述“flex上传文件的例子,支持多文件上传。”中,我们关注的核心知识点是Flex中的文件上传功能。 文件上传是Web应用中的常见需求,特别是在处理用户提交的多媒体内容时。在...
### Flex与Servlet结合实现文件上传及下载功能 在Flex与Servlet技术结合的背景下,本文将详细介绍如何通过这两种技术实现文件的上传与下载功能。通过分析提供的代码片段,我们可以看到一个典型的Flex应用程序界面...
Flex上传下载功能在企业应用中十分常见,尤其是在处理大量数据交互时。Flex作为一个富客户端的开发框架,提供了强大的用户界面创建能力,同时支持与服务器之间的数据传输。在本主题中,我们将深入探讨如何使用Flex...
Mobile FLEX上传文件是一种在移动设备上利用Adobe Flex技术实现文件上传至服务器的过程。Flex是基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA),它支持多种平台,包括移动设备。在本场景中,...
在本项目中,"flex上传"指的是利用Flex技术实现文件上传功能,而"包含服务端"则意味着这个项目不仅包括客户端的Flex代码,还包含了服务器端处理文件上传的逻辑。 1. **Flex客户端**:Flex客户端通常由ActionScript...
在Flex上传文件的场景中,我们需要创建一个自定义的HttpHandler,处理POST请求,并接收从Flex客户端传来的文件数据。接收到文件后,可以将其保存到服务器的指定位置。 下载部分则相对简单,通常由Flex客户端发起...
标题 "flex 上传excel 导入数据库" 涉及的技术点主要集中在使用Adobe Flex进行文件上传,特别是Excel文件,并将其数据导入到数据库中。Flex是一种开源的RIA(富因特网应用程序)开发框架,使用MXML和ActionScript...
本项目提供了一个完整的Flex文件上传控件,且集成了Java服务端处理,允许用户上传文件到服务器,并能进行多文件或单文件选择,以及设置上传文件大小限制,同时展示上传进度条,为用户提供友好的交互体验。...
标题“FLEX上传下载的FLEX项目源码”暗示了这是一个包含实现文件上传和下载功能的FLEX项目源代码。FLEX中的上传下载功能是通过与服务器进行HTTP通信来实现的,通常涉及到XMLHttpRequest对象或者使用Flash Player的...
在IT行业中,"flex上传"通常指的是使用Adobe Flex技术进行文件上传的操作。Flex是一种用于创建富互联网应用程序(RIA)的开放源代码框架,它允许开发者使用MXML和ActionScript构建交互式的用户界面,并与服务器端...
这个压缩包中的资源,"仿163邮件的flex上传控件,跟随表单提交,js随意控制",显然是一个专门针对文件上传功能的解决方案,特别是对于那些希望模仿163邮箱上传体验的开发者来说,具有很高的参考价值。 Flex是一种...
在本案例中,“Flex 上传头像(带裁剪) 有演示地址 asp.net版”是一个基于Flex技术构建的图像上传和裁剪功能,特别适用于个人资料头像的处理。这个解决方案整合了服务器端的ASP.NET技术,提供了一种完整的前后端交互...
总的来说,创建一个Flex上传组件,允许用户选择特定类型的文件,并带有滚动条功能,需要结合使用`FileReferenceList`、`Button`、`List`和可能的`HTTPService`组件。通过对这些组件的属性和事件的配置,我们可以实现...
Flex上传文件到.NET服务器是一种常见的交互方式,尤其在开发富互联网应用程序时。本文将深入探讨Flex客户端如何与.NET服务器进行文件上传的详细过程,并提供关键的技术知识点。 首先,`Flex`是一个开源的富互联网...
综上所述,"web flex上传"涉及到的技术栈包括客户端的Flex和JavaScript,以及服务器端的Java Web和JSP。通过合理利用这些技术,可以创建一个功能完善的多文档上传功能,提供良好的用户体验。在实际项目中,还可以...
本示例的主题“Flex上传压缩文件到服务器路径并解压存进数据库”涉及到的技术主要包括Flex客户端开发、服务器端处理、文件上传、文件压缩与解压以及数据库操作。下面将详细讲解这些知识点。 1. **Flex**: Flex是...
在Flex中处理文件上传,特别是上传多个文件,是一个常见的需求,特别是在构建支持用户上传大量数据的应用程序时。 在Flex中实现多文件上传,首先需要理解FileReference类。FileReference是Flash Player提供的一个...