SSM框架 文件下载

来源:互联网 发布:英文小说阅读软件 编辑:程序博客网 时间:2024/06/07 06:25

文件下载

这个适用各种类型的文件下载

java代码

 //导出    @RequestMapping("/exportDatabaseView")    @ResponseBody    public void exportDatabaseView (HttpServletRequest request, HttpServletResponse response){        try{            String xmlContent = "";            List<DatabaseView> list = _databaseViewService.queryAllDatabaseView ();            if(CollectionUtils.isNotEmpty (list)){                for(DatabaseView databaseView : list){                    String template = databaseView.getViewTemplate ();                    String viewDesc = databaseView.getViewDesc ();                    xmlContent = xmlContent + "--" + viewDesc + "\r\n" + template + ";" + "\r\n";                }            }            List<Organ> queryOrgan = _databaseViewService.queryOrgan ();            String org_code = null;            String org_name = null;            if(CollectionUtils.isNotEmpty (queryOrgan)){                Organ organ = queryOrgan.get (0);                org_code = organ.getOrg_code ();                org_name = organ.getOrg_name ();            }            /*Map map = new HashMap <String, String> ();            map.put ("orgCode", org_code);            map.put ("orgName", org_name);            xmlContent =  DynamicSQLUtil.getStaticSql (xmlContent, map);*/            if(xmlContent.indexOf ("#orgCode#")!=-1){                xmlContent = xmlContent.replaceAll ("#orgCode#", org_code);            }            if(xmlContent.indexOf ("#orgName#")!=-1){                xmlContent = xmlContent.replaceAll ("#orgName#", org_name);            }            String title = DateUtil.getNowDate () + "_视图脚本";//定义文件名             String fileName = title + ".sql";//定义文件格式              int bufferSize = 65000;              //xmlContent就是文件的内容            byte[] bytes = xmlContent.getBytes ("utf-8");               ByteArrayInputStream inputstream = new ByteArrayInputStream (bytes);              byte abyte0[] = new byte[bufferSize];              response.setContentType ("application/octet-stream; charset=utf-8");               response.setContentLength ((int) bytes.length);               response.setHeader ("Content-Disposition", "attachment;filename=" + new String (fileName.getBytes ("utf-8"), "ISO8859-1"));               ServletOutputStream out = response.getOutputStream (); response.setCharacterEncoding ("utf-8");               int sum = 0; int k = 0;               while ((k = inputstream.read (abyte0, 0, bufferSize)) > -1)               {                  out.write (abyte0, 0, k);                   sum += k;               }               inputstream.close ();              out.flush ();               out.close ();          }catch(Exception e){            _logger.error ("关闭流发生异常!", e);        }    }

Js请求

//导出    databaseView.expor=function(){        var param="";        var row =$('#datagrid').datagrid('getSelected');        var urlContent = contextPath + "/databaseView/exportDatabaseView.do?";        if(null == row){            $.messager.confirm("提醒", "确定导出全部视图脚本?", function(r) {            if (r) {                window.location.href= urlContent + param;            }        });        }    }