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**********************************/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容