加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

DWR入门实例五之文件下载

发布时间:2020-12-16 03:05:24 所属栏目:百科 来源:网络整理
导读:上一篇DWR入门实例四之文件上传,讲解了利用DWR3.0实现文件的上传功能。 这边文章我们将讲解利用DWR3.0实现文件的下载功能。 实现下载功能大致分两步: 第一步:javabean public FileTransfer exportExcel(Object… args) throws Exception {????//具体业务

上一篇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**********************************/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读