下载(批量)二维码代码

/*下载二维码图片*/
public ActionForward downLoadTwoCodeImg(ActionMapping mapping, ActionForm form,                                           HttpServletRequest request,HttpServletResponse response) {
logger.info( "存放生成的二维码图片文件夹路径:"+photoUrl);
try {
String taccountId = request.getParameter("taccountId");
if (StringUtil.isEmpty(taccountId)) {
request.setAttribute("message", "服务窗商户号为空");
request.setAttribute("url", "MerMgrAction.do?m=serviceWindowMer");
return mapping.findForward("message");
}
Tmerinfo tmerinfo = service.selectMerInfoById(taccountId);
String twoCodeImgName = tmerinfo.getTwoCodeImgName();
// String newFileName = twoCodeImgName.substring(0, twoCodeImgName.lastIndexOf("."));
if (StringUtil.isNotEmpty(twoCodeImgName)) {
   // 下载二维码图片代码
//    String uploadUrl = filePath +File.separator+ twoCodeImgName;      // 下载地址
 String uploadUrl = photoUrl +twoCodeImgName;      // 下载地址
   
   logger.info( "二维码图片下载地址:"+uploadUrl);
   downLoad(mapping,form,request,response,uploadUrl);
} else {
request.setAttribute("message", "二维码图片下载地址为空,请先生成二维码图片");
request.setAttribute("url", "MerMgrAction.do?m=serviceWindowMer");
return mapping.findForward("message");
}
} catch (Exception e) {
e.printStackTrace();
logger.error("下载二维码图片异常: "+e);
request.setAttribute("Memo", "下载二维码图片异常");
return mapping.findForward("error");
}
return null;
}
//下载图片
public void downLoad(ActionMapping mapping, ActionForm form, HttpServletRequest request,                               HttpServletResponse response,String fileName) {
FileInputStream in = null;
ServletOutputStream outStream = null;
try {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("image/png;charset=utf-8");
outStream = response.getOutputStream();
if (StringUtils.isEmpty(fileName)) {
logger.error("[文件下载]参数文件名为空");
outStream.write("[文件下载]文件名称为空".getBytes("utf-8"));
}
File file = new File(fileName);
// 下载的文件不存在
if (!file.exists()) {
outStream.write("[文件下载]文件不存在或已删除".getBytes("utf-8"));
}
// 解决不同浏览器文件名称乱码问题
String agent = request.getHeader("USER-AGENT");
if (agent != null && agent.indexOf("MSIE") == -1) {
fileName = new String(fileName.getBytes("utf-8"), "iso-8859-1");
} else { // IE
fileName = java.net.URLEncoder.encode(fileName, "utf-8");
}
String subFileName = fileName.substring(fileName.lastIndexOf(File.separator)+1);
response.setContentLength((int) file.length());
response.setContentType("application/x-msdownload;charset=utf-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + subFileName + "\"");


int length = 0;
in = new FileInputStream(file);
byte[] byteBuffer = new byte[1024];


while ((in != null) && ((length = in.read(byteBuffer)) != -1)) {
outStream.write(byteBuffer, 0, length);
}
outStream.flush();
} catch (Exception e) {
logger.error("[文件下载]下载文件异常", e);
} finally {
try {
if (outStream != null) {
outStream.close();
}
if (in != null) {
in.close();
}
} catch (IOException e) {
logger.error("[文件下载]下载文件,关闭流异常", e);
}
}
}


         /*批量下载二维码*/

public ActionForward batchDownLoad(ActionMapping mapping, ActionForm form, HttpServletRequest                  request, HttpServletResponse response) throws IOException {
PayWindowMerService service = new PayWindowMerService();
String batchNo = request.getParameter("batchNo");
String zipName = batchNo+".zip";
   List<Map<String,String>> merImgs = service.getMerImgInfo(batchNo);
   if(merImgs.size()>0){
      response.setContentType("APPLICATION/OCTET-STREAM");  
     response.setHeader("Content-Disposition","attachment; filename="+zipName);
     ZipOutputStream out = new ZipOutputStream(response.getOutputStream());
try {
      String fileName = (String) merImgs.get(0).get("IMG_NAME");
       if (null != fileName || !" ".equals(fileName)) {
   // 下载二维码图片代码
   String uploadUrl = (String) merImgs.get(0).get("IMG_URL");
   ZipUtils.doCompressDir(new File(uploadUrl), out);
               response.flushBuffer();
   logger.error( "批量下载二维码图片成功");
       }
       } catch (Exception e) {
      e.printStackTrace();
      logger.error("批量下载二维码图片异常: ", e);
      request.setAttribute("Memo", "批量下载二维码图片异常");
      return mapping.findForward("error");
          }finally{
                    out.close();
        }
    }else{
        request.setAttribute("message", "库中没有您要下载的二维码资源");
        request.setAttribute("url", "MerMgrAction.do?m=serviceWindowMer");
        return mapping.findForward("message");
   }
   return null;
   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值