`
- 浏览:
47107 次
- 性别:
- 来自:
广州
-
Flex下载文件的处理方法
项目中常常需要对用户提供下载的需求,在java web工程中,通常可以通过servlet来方便的实现,但是在flex中前台实现下载还是有些麻烦。Flex提供了FileReference类,FileReference类里提供了download和upload方法,一看就知道是用来下载跟上传的,我们来仔细看download方法的参数,(request:URLRequest, defaultFileName:String = null),第一个是RULRequest,即文件的地址,第二个是文件名,但是很多情况下,我们数据是在前台组装的,在服务器上并没有保存,或没有固定地址,所以该方法有时并不能达到我们下载的目的。
首先,我们其实可以将flex前台下载转为java后台下载,举个例子,如果flex前台有数据需要保存在用户本地,可以打开一个新的servlet链接,将要保存的数据通过get或post方式提交给servlet,然后转给servlet处理,这样就轻松解决了下载的问题。
其次,flex从flash10开始还是支持下载前台数据的。 flash10开始,FileReference增加了一个save方法,参数为(data:Object, defaultFileName:String = null),在调用save方法时,只需将文件内容传给data,浏览器会自动打开一个保存对话框,让用户选择保存目录。有两个要注意的地方,1、save方法flash10及以上才有,客户端flash版本需跟上,且代码编译环境也要在10以上,eclipse环境下,选中项目,右键properties,flex compiler选项,将required flash player version 设为10.0.0或以上,否则将找不到save方法。2、save方法只能通过用户交互来调用。怎么理解用户交互,例如,点击一个下载按钮这算是用户交互,而一般的回调方法则不是用户交互。如下载一张图片,如果图片还没加载进来,我们经常是先要进行加载,然后监听事件,然后在回调函数里进行处理,如果将save方法写在回调函数里面,将会报错:Error #2176: 某些动作(如显示弹出窗口的动作)只能通过用户交互来调用。所以很多时候我们必须采用双按钮,一个用来加载数据,一个用来下载数据。
接下来说下如何实现批量下载。因为安全原因,web程序是不可能让网页在用户不知情的情况下将数据保存在本地的,所以如果照上面的方法,如果下载10个文件要弹10个保存框,这样用户肯定接受不了的。能不能只弹一个?暂时我没有找到方法,不过现在有个折中的办法,将用户要下载的文件打包成一个压缩包,这样用户只需点击一次,但多了一个解压的操作。目前为止,这是最好的方法。
如何在flex前台对文件进行压缩?现在已有了成熟的类库FZip http://codeazur.com.br/lab/fzip/ 。FZip is an Actionscript 3 class library to load, modify and create standard ZIP archives.有了FZip可以很方便的读取,修改,创建zip压缩文件。例如下面代码就能实现文件压缩下载:
var zip:FZip = new FZip();
zip.addFile(fileName,fileByteArray);
var zipData:ByteArray = new ByteArray();
zip.serialize(zipData);
file.save(zipData,”test.zip”);
因为flex跟java后台是异步交互,在实际使用过程中,可能会碰到很多问题,耐心调试一下一定可以实现文件任意下载方式。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Flex+Java Servlet处理文件上传 关于上传文件
1、利用Flex作为上传文件界面,通过servlet地址连接服务器端 2、Servlet处理上传文件过程 3、通过配置文件web.xml传递参数 4、达到Flex和Servlet进行交互,上传文件
例子里写了 文件上传 预览 下载方法, 以及预览 下载时中文名文件乱码问题的处理方法 希望对大家有用处
Flex+Java Servlet处理文件上传
flex 文件上传 例子 源码 里面有两文件,一个是前台上传,另一个是后台java端处理
第24章 文件的上传下载.ppt 第25章 Mp3播放器.ppt 第26章 用户登录.ppt 第27章 电子相册.ppt 第28章 浏览FTP.ppt 第29章 FLV播放器.ppt 第30章 留言板.ppt 第31章 在线书店系统.ppt ├─Flex与JAVA │ ...
数据管理.ppt第21章 XML的处理.ppt第22章 Flex应用程序开发.ppt第23章 Flex应用程序部署.ppt第24章 文件的上传下载.ppt第25章 Mp3播放器.ppt第26章 用户登录.ppt第27章 电子相册.ppt第28章 浏览FTP.ppt第29章 FLV...
《flash+flex+air移动开发入门经典——适用于android、ios和blackberry》 第1章 flash、flex和air简介 1 1.1 adobe flash 1 1.2 actionscript 3.0 2 1.2.1 ecmascript 2 1.2.2 关键概念 3 1.3 flex框架 11 ...
本资源摘要信息主要讲述了 Flex 3 的基础教程,包括了使用 AMFPHP 进行通信、RemoteObject 与 AMFPHP 的通信、服务端的设置、方法表格、服务浏览、错误处理等内容。 一、AMFPHP 简介 AMFPHP 是一个 PHP 库,用于将...
MessageBrokerServlet 是真正处理 Flex 远程调用请求的 Servlet,我们需要将其映射到指定的 URL: 清单 5. 定义 Flex servlet <servlet> <servlet-name>messageBroker</servlet-name> <servlet-class>...
自己开发的flash上传demo,flex上传技术,无刷新上传,显示进度,后台处理程序为php,且支持批量上传。
MessageBrokerServlet 是真正处理 Flex 远程调用请求的 Servlet,我们需要将其映射到指定的 URL: 清单 5. 定义 Flex servlet <servlet> <servlet-name>messageBroker</servlet-name> <servlet-class>flex....
处理文件和数据 构建目录搜索应用程序 构建 JPEG 文件上载程序 构建文本文件编辑器 压缩文件和数据 在 Adobe AIR 应用程序中对 PDF 内容进行跨脚本编写 拖动、复制和粘贴数据 读写 XML 首选参数文件 处理停靠...
非常全的flex 学习文档 目录 第 1 章 : 关于 Flash Builder 使用 Flash Builder 可以完成的工作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...
//uploadAction:处理上传文件的网页 //uploadParam:处理上传文件的网页所接收的参数 //ItemDate:单个文件大小控制,单位是字节 //TotalDate:一次上传的文件总大小控制,单位是字节 //TotalCount:一次上传文件的数量...
flex中经常需要xml格式的文件。通过后台asp.net的处理可以将数据库中读取的文件转化为xml格式。这是再传递给前端的flex中的tree控件作为数据源。
第01章 Flex简介.ppt ...第24章 文件的上传下载.ppt 第25章 Mp3播放器.ppt 第26章 用户登录.ppt 第27章 电子相册.ppt 第28章 浏览FTP.ppt 第29章 FLV播放器.ppt 第30章 留言板.ppt 第31章 在线书店系统.ppt
将flex中datagrid组件中数据导出到excel表格中。思路很简单,利用as将datagrid中的数据解析出来,传到后台java服务端处理,即可保存为excel文件。
该脚本使您可以访问 flex 历史文件中的数据记录,从而允许您使用 MATLAB 进行后处理。 MATLAB 脚本需要 flex 历史文件的名称作为输入才能打开文件。 将“FName”替换为您的 flex 历史文件的名称(包括扩展名)并...