字符串导出xml文件并弹出下载对话框

 
导出单个xml文件: 
[java]  view plain  copy
  1.       List<Emr_cda_standard_ntDTO>  resultList = gxwdgfDAO.queryXmlContent(bean,inputData);//字符串来源  
  2.               
  3.             HttpServletResponse response = (HttpServletResponse) inputData.get(ValueConstant.HTTP_RESPONSE);  
  4.               
  5.             String xml = resultList.get(0).getContent();    
  6.               
  7.             //对文件名进行UTF-8编码,并处理编码后空格变成的"+"号  
  8.             String fileName = URLEncoder.encode(resultList.get(0).getCode()+"."+resultList.get(0).getName()+".xml""UTF-8").replace("+","%20");   
  9.               
  10.             response.setContentType("application/octet-stream;charset=UTF-8");  
  11.             response.setHeader("Content-Disposition""attachment;filename="+fileName);  
  12.               
  13.             PrintWriter out = response.getWriter();  
  14.             if(xml!=null){  
  15.                 out.print(xml);  
  16.             }else{  
  17.                 out.print("");  
  18.             }  
  19.             out.flush();  
  20.             out.close();  

导出多个xml文件(压缩包形式):

[java]  view plain  copy
  1. HttpServletRequest req = (HttpServletRequest) inputData.get(ValueConstant.HTTP_REQUEST);  
  2.         HttpServletResponse resp = (HttpServletResponse) inputData.get(ValueConstant.HTTP_RESPONSE);  
  3.         String filename = "";  
  4.         String zipName = "共享文档规范.zip";  
  5.         String xml = "";   
  6.         String path = req.getSession().getServletContext().getRealPath("/");  
  7.         try {  
  8.             List<Emr_cda_standard_ntDTO>  resultList = gxwdgfDAO.queryXmlContent(bean,inputData);//字符串来源  
  9.             resp.setContentType("application/octet-stream;charset=UTF-8");  
  10.             resp.setHeader("Content-Disposition""attachment;filename="+URLEncoder.encode(zipName, "UTF-8"));  
  11.             String str = "";  
  12.             String rt = "\r\n";  
  13.             ZipOutputStream zos = new ZipOutputStream(resp.getOutputStream());  
  14.             for (Emr_cda_standard_ntDTO emrCdaStandardNtDTO : resultList) {  
  15.                 filename = emrCdaStandardNtDTO.getCode()+"."+emrCdaStandardNtDTO.getName()+".xml";  
  16.                 xml = emrCdaStandardNtDTO.getContent();  
  17.                 str += filename + rt;  
  18.                 zos.putNextEntry(new ZipEntry(filename));  
  19.                   
  20.                 //构造一个临时文件用来压缩  
  21.                 File file=new File(path + filename);//文件对象  
  22.                 PrintWriter out=new PrintWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8"));//由文件对象构造一个写出器  
  23.                 if(xml!=null){  
  24.                     out.print(xml);  
  25.                 }else{  
  26.                     out.print("");  
  27.                 }  
  28.                 out.flush();  
  29.                 out.close();  
  30.                   
  31.                 FileInputStream fis = new FileInputStream(file);  
  32.                 byte b[] = new byte[1024];  
  33.                 int n = 0;  
  34.                 while((n = fis.read(b)) != -1){  
  35.                     zos.write(b, 0, n);  
  36.                 }  
  37.                 zos.flush();  
  38.                 fis.close();  
  39.                 file.delete();//删除临时文件  
  40.             }  
  41.             zos.setComment("导出成功:" + rt + str);  
  42.             zos.flush();  
  43.             zos.close();  
  44.         } catch (GeneralException ge) {  
  45.             throw ge;  
  46.         } catch (Exception e) {  
  47.             ExceptionUtil.throwUnknown(e, logger);  
  48.         }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值