- 浏览: 14764 次
- 性别:
- 来自: 大连
最新评论
本文所指Flex是指flex web应用。导出文件在web应用中是一个基本功能最常见的恐怕就是将表格数据导出成excel了。那么除了excel还有专用的表单数据等其它文件格式,本文介绍flex导出文件的通用处理方法。
1、 约定
1) flex与java通讯使用blazeds;
2) 使用java servlet进行文件流输出;
3) Java端有一方法String generateFile(),该方法会自动先调用generateStream方法得到文件流,然后根据文件流生成文件,并返回文件名称;
4) Java端有一方法protected OutputStream generateStream() throws Exception,开发人员需重写该方法用以导出文件的文件流生成;
5) java端有一个文件下载的servlet,/servlet/downloadServlet,需参数fileName、delete,分别表示文件名称和下载后是否在服务器删除副本。
2、 如何实现?
Flex导出文件通用方法很简单,需做2件事情。
第一:flex发送生成文件指令
调用java端方法生成文件,此处需要开发人员做的事情为根据实际情况实现自己的outputstream生成方法,产生出outputstream方法之后,调用generateFile方法,产生出文件并将文件名返回到flex前端。
定义一个remoteobject,设置其destination、endpoint等属性,添加remoteobject的result事件处理。
调用remoteobject. generateFile()方法,在其result事件中获取文件名称fileName。
第二:flex发送文件下载指令
Flex客户端在remoteobject的result事件中发送文件下载指令,进行文件下载、临时文件删除处理。
利用URLRequest和navigateToURL进行文件下载,设置URLRequest的url为java 文件下载的servlet,并跟上参数fileName和delete,delete=true时,该文件下载完毕之后,删除服务器上的副本。代码如下:
var urlRequest:URLRequest = new URLRequest(http://localhost:8080/app/servlet/ downloadServlet?fileName=2323230.xls&delete=true);
navigateToURL(urlRequest);
文件下载的servlet核心代码如下:
public void service (HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException{
String fileName = request.getParameter("fileName");
String filePath = uploadPath+fileName;
//判断文件是否下载完成之后删除掉
String deleteed = request.getParameter("delete");
boolean isDelete = false;
if(!StringUtil.isEmpty(deleteed) && "true".equalsIgnoreCase(deleteed.trim()))
isDelete = true;
//
File f=null;
FileInputStream fileIn = null;
ServletOutputStream outputStream = null;
try{
f= new File(filePath);
if(f.exists()){
//设置输出格式,保存时的文件默认名称
response.setContentType("APPLICATION/OCTET-STREAM" );
response.setHeader("Content-Disposition","attachme nt; filename=\"" + fileName + "\"");
//
fileIn = new java.io.FileInputStream(f);
outputStream = response.getOutputStream();
int length = fileIn.available();
byte buffer[]=new byte[length];
while(length>0){
fileIn.read(buffer);
outputStream.write(buffer);
length=fileIn.available();
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(outputStream!=null)
outputStream.close();
}catch(Exception e1){}
try{
if(fileIn!=null)
fileIn.close();
}catch(Exception e2){}
try{ if(f!=null && isDelete) f.delete(); }catch(Exception e3){} } }
发表评论
-
第二章:字符串和字符串处理
2012-07-06 09:51 7401. char(表示8位ANSI),wchar_t(表示1 ... -
Python中正则表达式对中文的匹配问题
2012-07-06 09:45 717今天在用python匹配中文的时候出了问题,要么匹配不到, ... -
有限状态机实现正则表达式
2012-07-06 09:37 2040最近在写语法分析 ... -
jsp页面换行输出
2012-07-06 09:30 1146if(skins != null){ Iterator i ... -
js注册验证
2012-07-05 20:44 572function getFocus() //设置用户名文本 ... -
自定义通用查询组件
2012-07-03 13:42 6601、 设计通用查询窗口,严格的说这是一个目前只适合数据库 ... -
Flex 数据易犯错误: 常见误用和错误
2012-07-02 10:23 516在某些情形下,绑定操作似乎不能正常工作,此时你可能非常懊恼 ... -
Flex3 做界面与 VC交互
2012-07-02 10:22 670Flex3 代码 width="400&quo ... -
页面中嵌入FLEX应用-传参
2012-07-02 10:22 610项目需要在页面的某div中动态展现图表数据,最终选用FLE ... -
engine introduce
2012-07-02 09:43 476... -
Flex Spring整合包
2012-07-01 09:41 695Adobe Flex是一套创建富客户端应用(RIAs)的框 ... -
myeclipse6.5+flex 3 + tomcat6.0 + ds-console.war环境搭建
2012-07-01 09:41 371安装环境:myeclipse6 ... -
The architecture of Flex and Java applications two (Flex 和 Java 应用程序架构 2)
2012-07-01 09:41 508Flex and Java application ... -
Flex4+Spring3+Hibernate3+BlazeDS整合笔记
2012-07-01 09:41 555普通Java Web工程流行使用ssh框架,而当前台使用F ... -
PHP发送邮件乱码的具体解决方法
2012-06-30 17:57 835【转自】http://doc.chinaunix.net/ ... -
ASP.NET 使用alert弹出对话框后,CSS样式失效,字体变大的解决方法
2012-06-30 17:57 983ASP.NET 使用alert弹出对话框后,CSS样式 ... -
windows 7 下安装Oracle 9i 解决方法
2012-06-30 17:57 1247这里首先申明下,windows7下安装oracle9i 9 ... -
sql server 2000的一些问题解决方法
2012-06-30 17:57 567我机器上SQL Server 2000的sa密码因为长时间 ...
相关推荐
flex导出csv文件。可以实现flex表格里面的内容导成csv文件
AdvancedDataGrid导出复杂表头excel
1、使用flex导出excel的简单实例 其中使用到flex dataGrid的全选操作
Flex导出Excel 详解,该压缩文件有4个核心文件,可以生成任何Excel文件
flex air 导出excel表格(这个不支持中文)。。。。。。
<![CDATA[ import mx.controls.CheckBox; import mx.controls.Alert;... 导出" click="onCreate()"/> (data as Object)} " /> </mx:DataGridColumn> </mx:WindowedApplication>
Flex利用JSP导出Excel Flex利用JSP导出Excel
使用as3xls-1.0.1.SWC包做的Flex界面DateGrid数据导出Excel表格。
flex中dataGrid导出数据到excel中,不存在乱码问题
Flex+Java Servlet处理文件上传 关于上传文件
FLEX导出EXCEL支持合并隐藏单元格
flex导出成excel部分代码
flex air 导出 excel 支持中文
Flex中导出当前DataGrid中的数据。生成一个Excel文件。资源为一个简单的应用。
Flex帮助文件 Flex帮助文件 Flex帮助文件 Flex帮助文件 Flex帮助文件
NULL 博文链接:https://zhousheng193.iteye.com/blog/945068
flex 导出excel工具包 用法如下: import com.as3xls.xls.ExcelFile; import com.as3xls.xls.Sheet; import mx.collections.ArrayCollection; import mx.controls.DataGrid; import mx.controls.dataGridClasses....
NULL 博文链接:https://pangxin12345.iteye.com/blog/670931
flex pdf导出功能,具有分页效果。解决自带save()方法中的安全沙箱问题。ps :crossdomain.xml也解决不了,最后换的另一种的方式
FLEXd多文件上传,上传前MD5验证允许那些文件可以上传