/*下载二维码图片*/
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);
}
}
}
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;
}
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;
}