SSM框架 通用文件下载

本文介绍了一个使用Java实现的文件导出功能,通过HTTP请求导出包含特定内容的SQL脚本文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件下载

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

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;
            }
        });
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值