`
- 浏览:
47989 次
- 性别:
- 来自:
广州
-
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文件上传下载,在线以pdf形式浏览文件"这一功能,需要综合运用前端开发、后端接口设计、文件处理和安全策略等多个领域的知识,为用户提供便捷、安全的文件管理体验。在实际开发过程中,还需要...
### Flex与Servlet结合实现文件上传及下载功能 在Flex与Servlet技术结合的背景下,本文将详细介绍如何通过这两种技术实现文件的上传与下载功能。通过分析提供的代码片段,我们可以看到一个典型的Flex应用程序界面...
在 Flex 开发中,文件上传和下载是常见的需求,尤其对于需要处理大量用户上传内容的应用来说,这是一项关键功能。Flex 提供了便捷的方式来进行文件的上传和下载操作,同时可以有效利用服务器资源,提高服务器性能。...
在Flex编程中,指定文件下载并带有进度条功能是一项常见的需求,这主要涉及到网络I/O操作、事件处理以及用户界面的更新。以下是对这个主题的详细讲解。 首先,Flex是Adobe开发的一种开源富互联网应用程序(RIA)...
2. **Flex文件上传**:Flex应用程序通常使用HTTPService或WebService组件与服务器进行通信。在文件上传过程中,我们可以将FileReference对象的data属性绑定到HTTPService的requestContent,然后调用send方法发起POST...
Mobile FLEX下载文件技术主要涉及Adobe Flex框架在移动设备上的应用,用于从指定的URL下载数据。Flex是一种基于ActionScript和MXML的开源框架,它允许开发者构建富互联网应用程序(RIA),并能运行在多种平台,包括...
总的来说,理解并实现“flex 多文件上传”需要熟悉Flex框架、ActionScript编程以及服务器端文件处理技术。开发者需要关注文件选择、上传流程控制、错误处理和用户体验优化等多个方面,以确保功能的完整性和用户友好...
Flex多文件上传组件是一种在Adobe Flex环境中实现的高级功能,允许用户一次性选择并上传多个文件。这个组件在Web应用程序中非常实用,特别是在处理大量图片、文档或其他类型文件上传的场景下,大大提升了用户体验。 ...
在Flex中实现文件上传和进度显示,通常涉及到多个技术层面,包括客户端的用户界面设计、服务器端的数据处理以及通信协议的使用。以下是关于这个主题的详细知识点: 1. **Flex组件库**:Flex提供了一套丰富的组件库...
总结,这个项目结合了Flex的富客户端功能和Java的后端处理能力,实现了Web端的文件上传和下载。对于更复杂的应用场景,可能还需要考虑多文件上传、断点续传、文件预览、权限控制等额外功能。同时,随着Flash逐渐被...
在这个“Flex文件传输方式之File”的示例中,我们将探讨Flex4如何实现文件上传和下载功能,这对于任何需要用户交互处理本地文件的应用程序都是至关重要的。 在Flex中,`File`类是处理用户选择的本地文件的核心组件...
在Flex中,我们可以利用ActionScript 3.0进行编程,其中FileReference类为我们提供了处理文件上传和下载的核心功能。 **文件上传** 在Flex中,文件上传通常涉及到用户通过浏览器选择一个本地文件,然后将该文件...
综上所述,Flex文件上传下载组件结合了Flex的富用户体验和Java Servlet的强大处理能力,提供了一个高效、安全的文件管理解决方案。通过合理的前端设计和后端逻辑,开发者可以构建出满足多样化需求的文件上传下载系统...
Flex文件上传组件是一种基于Adobe Flex技术的用户界面组件,它允许用户在Web应用程序中选择并上传文件。在Flex中,这种组件通常会显示一个文件选择对话框,让用户选择要上传的文件,并且会提供一个进度条来显示上传...
在Flex中,我们可以使用`FileReference`类来处理文件选择和上传。`FileReference`允许用户从本地文件系统中选择一个或多个文件。在用户选择文件后,我们可以监听`select`事件来获取选中的文件列表。 ```...
当我们需要在Web应用程序中实现文件上传功能时,可以利用Flex作为前端用户界面,Java Servlet作为后端处理程序。 为了实现Flex+Java Servlet的文件上传,我们需要以下步骤: 1. **事前准备**: 在开始之前,我们...
Flex文件上传下载是一种基于Adobe Flex技术的Web应用功能,它结合了Java后端服务来实现文件的上传和下载。在Flex前端,用户可以方便地通过图形界面选择文件,并通过Ajax方式与Java服务器进行异步通信,实现数据的...
5. **错误处理与反馈**:在文件上传过程中可能会遇到各种问题,如文件大小限制、文件类型限制等,需要进行有效的错误处理,并将结果反馈给Flex客户端。 在这个完整实例中,开发者已经配置好了Servlet,确保了文件...
本项目提供了一个完整的Flex文件上传控件,且集成了Java服务端处理,允许用户上传文件到服务器,并能进行多文件或单文件选择,以及设置上传文件大小限制,同时展示上传进度条,为用户提供友好的交互体验。...