DWR入门实例五之文件下载

2012-12-04  来源:本站原创  分类:J2EE  人气:2 

上一篇DWR入门实例四之文件上传,讲解了利用DWR3.0实现文件的上传功能。

这边文章我们将讲解利用DWR3.0实现文件的下载功能。

实现下载功能大致分两步:

第一步:javabean

public FileTransfer exportExcel(Object… args) throws Exception {

    //具体业务逻辑

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    DataOutputStream dos = new DataOutputStream(bos);

    byte[]data = new byte[512];

    //读数据存入data;省略逻辑;
    dos.write(data);//将数据写入bos字节数组流中去

    return new FileTransfer(data+".xls", "application/msexcel", bos.toByteArray());
    //构造FileTransfer对象需要三个参数:第一个文件名字,第二个类型(header type),
    //第三个是一个字节数据。
}

第二步:js

var exportExcel = function(){
      JavaBean.exportExcel(params,{
        callback:function(data){
            dwr.engine.openInDownload(data);
        },
        async : false
    });
};

整个下载功能需要的关键代码已列出来了,其中关键的是FileTransfer对象;js中async设置为false,

回调函数中的dwr.engine.openInDownload(data);

/****************************原理**********************************/

DWR AJAX实现下载的原理:其实就是在页面嵌入一个iframe,将src设置成一个后台生成的下载文件的url(这个url是DWR内部生成的)。

其实和我们平时做的普通下载功能,实现是一样的原理。

/****************************end**********************************/

相关文章
  • DWR入门实例五之文件下载 2012-12-04

    上一篇DWR入门实例四之文件上传,讲解了利用DWR3.0实现文件的上传功能. 这边文章我们将讲解利用DWR3.0实现文件的下载功能. 实现下载功能大致分两步: 第一步:javabean public FileTransfer exportExcel(Object- args) throws Exception { //具体业务逻辑 ByteArrayOutputStream bos = new ByteArrayOutputStream(); DataOutputStream dos = new

  • ExpressJS入门实例 2014-12-18

    这篇文章主要介绍了ExpressJS入门实例,本文讲解了创建项目.进入目录.安装项目依赖的包.创建应用程序.运行程序等内容,需要的朋友可以参考下 一.我们创建项目目录. > md hello-world 二.进入此目录,定义项目配置文件package.json.为了准确定义,可以使用命令: [email protected] No README.md file found! [email protected] D:\tmp\node\hello-world └─┬ [email protecte

  • JavaScript字符串对象slice方法入门实例(用于字符串截取) 2013-10-22

    这篇文章主要介绍了JavaScript字符串对象slice方法入门实例,slice方法用于通过指定开始和结束位置来截取字符串,需要的朋友可以参考下 JavaScript slice 方法 slice 方法用于截取字符串中的一部分并返回该部分字符串.其语法如下: str_object.replace(start, end) 参数说明: 参数 说明 str_object 要操作的字符串(对象) start 必需.要截取的开始位置,从 0 开始计算:如果为负数,则从字符串末尾反向开始计算 end 可选

  • php下Memcached入门实例解析 2013-10-29

    这篇文章主要介绍了php下Memcached入门实例,较为详细的分析了memcached的概念与用法,是非常实用的技巧,需要的朋友可以参考下 本文较为详细的讲述了php下Memcached的入门知识与实例.分享给大家供大家参考.具体如下: memcache 在什么情况下被使用,什么情况下不要使用? 你在何时应该使用 memcache,又要在何时避免使用它?现在你已经知道了,memcahced 是被设计为减轻数据库教程端压力的,但是你最好能制定一个良好的策略,来想办法让 memcached 来尽可

  • JavaScript strike方法入门实例(给字符串加上删除线) 2013-11-09

    这篇文章主要介绍了JavaScript strike方法入门实例,strike方法用于给字符串加上删除线,需要的朋友可以参考下 JavaScript strike 方法 strike 方法返回使用 HTML strike 标签属性定义的删除线样式的字符串.其语法如下: str_object.strike() 提示:该方法不符合 ECMA 标准,不建议使用. strike 方法实例 复制代码 代码如下: <script language="JavaScript"> var s

  • smarty简单入门实例 2013-11-09

    这篇文章主要介绍了smarty简单入门实例,包括了配置文件的用法与模板文件的使用,非常具有实用价值,需要的朋友可以参考下 本文以一个简单实例分析了smarty的用法.分享给大家供大家参考.具体分析如下: smarty建立配置文件.显示文件后即可,配置文件显示文件分开来,使美工跟开发工作能完美分开 配置页面代码:index.php <?php @header("Content-type: text/html; charset=UTF-8"); require '../libs/Sm

  • JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码) 2013-12-07

    这篇文章主要介绍了JavaScript charCodeAt方法入门实例,charCodeAt方法用于取得指定位置字符的Unicode编码,需要的朋友可以参考下 JavaScript charCodeAt 方法 charCodeAt 方法用于从字符串中取得指定位置字符的 Unicode 编码.其语法如下: str_object.charCodeAt( x ) 参数说明: 参数 说明 str_object 要操作的字符串(对象) x 必需.表示位置的数字 提示:字符串是从 0 开始计数的. cha

  • JavaScript字符串对象substr方法入门实例(用于截取字符串) 2013-12-29

    这篇文章主要介绍了JavaScript字符串对象substr方法入门实例,substr用于根据开始位置和长度截取字符串,需要的朋友可以参考下 JavaScript substr 方法 substr 方法用于根据开始位置和长度截取字符串并返回截取部分字符串.其语法如下: str_object.substr(start, length) 参数说明: 参数 说明 str_object 要操作的字符串(对象) start 必需.开始截取的位置,从 0 开始计算:如果为负数则从字符串末尾开始计算(经测试,

  • JavaScript sub方法入门实例(把字符串显示为下标) 2013-12-31

    这篇文章主要介绍了JavaScript sub方法入门实例,sub方法用于把字符串显示为下标,需要的朋友可以参考下 JavaScript sub 方法 sub 方法返回使用 HTML sub 标签属性定义的下标字符串.其语法如下: str_object.sub() 提示:该方法不符合 ECMA 标准,不建议使用. sub 方法实例 复制代码 代码如下: <script language="JavaScript"> document.write( '脚本之家' + '每一点进

  • php url路由入门实例 2014-01-01

    这篇文章主要介绍了php url路由入门实例,解析url路由的实现细节,需要的朋友可以参考下 一.什么是php的路由机制 1.路由机制就是把某一个特定形式的URL结构中提炼出来系统对应的参数.举个例子,如:http://main.test.com/article/1 其中:/article/1 -> ?_m=article&id=1. 2.然后将拥有对应参数的URL转换成特定形式的URL结构,是上面的过程的逆向过程. 二.PHP的URL路由方式 总体来说就是:获取路径信息->处理路径信

  • JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串) 2014-01-08

    这篇文章主要介绍了JavaScript fontcolor方法入门实例,fontcolor方法用于按照指定的颜色来显示字符串,需要的朋友可以参考下 JavaScript fontcolor 方法 fontcolor 方法返回使用 HTML font 标签中 color 属性定义的带有颜色的字符串.其语法如下: str_object.fontcolor( color ) 参数说明: 参数 说明 str_object 要操作的字符串(对象) color 必需.颜色名(red).RGB 值(rgb(2

  • JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写) 2014-01-15

    这篇文章主要介绍了JavaScript字符串对象toUpperCase方法入门实例,toUpperCase方法用于把字母转换为大写,需要的朋友可以参考下 JavaScript toUpperCase方法 toUpperCase方法用于把(英文)字符串转换为大写,并返回转换后的字符串.其语法如下: str_object.toUpperCase() toUpperCase方法实例 复制代码 代码如下: <script language="JavaScript"> var str

  • JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写) 2014-01-27

    这篇文章主要介绍了JavaScript字符串对象toLowerCase方法入门实例,toLowerCase方法用于把字母字符串转换为小写形式,需要的朋友可以参考下 JavaScript toLowerCase 方法 toLowerCase 方法用于把(英文)字符串转换为小写,并返回转换后的字符串.其语法如下: str_object.toLowerCase() toLowerCase 方法实例 复制代码 代码如下: <script language="JavaScript">

  • 使用Python开发windows GUI程序入门实例 2014-02-12

    这篇文章主要介绍了使用Python开发windows GUI程序入门实例,本文着重介绍开发环境必须的软件,代码实现相对简单,需要的朋友可以参考下 今天终于可以用wxPython开发GUI程序了,非常高兴.把其中的一些注意点写下来以供参考.在windows XP平台下,首先需要做以下环境的配置: 1. 首先是安装python ,安装完之后将python/bin所在目录添加到path中. 2. 安装wxPython, 此时要注意wxPython的版本要与前面python的版本一致. 3. 安装py2

  • JavaScript sup方法入门实例(把字符串显示为上标) 2014-03-24

    这篇文章主要介绍了JavaScript sup方法入门实例,sup方法用于把字符串显示为上标,需要的朋友可以参考下 sup 方法返回使用 HTML sup 标签属性定义的上标字符串.其语法如下: str_object.sup() 提示:该方法不符合 ECMA 标准,不建议使用. sup 方法实例: 复制代码 代码如下: <script language="JavaScript"> document.write( '脚本之家' + '每一点进步,都是我们通往成功道路上的坚实脚

  • javascript面向对象快速入门实例 2014-04-08

    这篇文章主要介绍了javascript面向对象快速入门实例,以一个简单实例分析了javascript面向对象的中对象的定义与使用技巧,需要的朋友可以参考下 本文深入浅出的讲述了javascript面向对象快速入门实例.分享给大家供大家参考.具体如下: javascript面向对象入门案例: <script language="javascript" type="text/javascript"> function Cat(){//js中对象的定义与函数一

  • python中Flask框架简单入门实例 2014-04-27

    这篇文章主要介绍了python中Flask框架简单入门实例,以一个hello程序简单分析了Flask框架的使用技巧,需要的朋友可以参考下 本文实例讲述了python中Flask框架的简单用法.分享给大家供大家参考.具体如下: 使用Flask框架的简单入门范例代码,如果你正学习Flask框架,可以参考下面的启动代码,这段代码可以在网页上输出"hello world" import os # Using Flask since Python doesn't have built-in se

  • Python中操作MySQL入门实例 2014-06-09

    这篇文章主要介绍了Python中操作MySQL入门实例,本文讲解了安装.打开数据库连接.插入数据.查询数据.删除数据等操作,需要的朋友可以参考下 一.安装MySQL-python # yum install -y MySQL-python 二.打开数据库连接 复制代码 代码如下: #!/usr/bin/python import MySQLdb conn = MySQLdb.connect(user='root',passwd='admin',host='127.0.0.1') conn.sel

  • JavaScript onkeydown事件入门实例(键盘某个按键被按下) 2014-07-14

    这篇文章主要介绍了JavaScript onkeydown事件入门实例,onkeydown事件捕捉键盘上某个按键被按下的情况,需要的朋友可以参考下 JavaScript onkeydown 事件 用户按下一个键盘按键时会触发 onkeydown 事件.与 onkeypress 事件不同的是,onkeydown 事件是响应任意键按下的处理(包括功能键),onkeypress 事件只响应字符键按下后的处理. 提示 Internet Explorer/Chrome 浏览器使用 event.keyCod

  • JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置) 2014-08-07

    这篇文章主要介绍了JavaScript indexOf方法入门实例,indexOf方法用于计算指定字符在字符串中首次出现的位置,需要的朋友可以参考下 JavaScript indexOf 方法 indexOf 方法用于计算某个指定的字符串在字符串中首次出现的位置,并返回该数值.其语法如下: str_object.indexOf( search, start ) 参数说明: 参数 说明 str_object 要操作的字符串(对象) search 必需.要检索的字符串 start 可选.指定开始检索