From 23e16cb8f135d17e98b34786eeedb1fd226dbc4a Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期六, 27 四月 2024 18:41:46 +0800 Subject: [PATCH] 1、修改DownloadFileCtrl中的文件名称转码方式; 2、用EasyExcel实现标识类二维码导出excel文件并下载功能。 --- pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java | 97 +++++++++++++++++++++++++----------------------- 1 files changed, 50 insertions(+), 47 deletions(-) diff --git a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java index 57f5648..f858373 100644 --- a/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java +++ b/pms-parent/pms-web-file/src/main/java/com/dy/dyFile/download/DownloadFileCtrl.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.FileInputStream; +import java.net.URLEncoder; /** * web鏂囦欢涓嬭浇 @@ -44,65 +45,67 @@ */ @GetMapping("/down") public void down(String id, HttpServletRequest req, HttpServletResponse rep){ - OthFile fPo = sv.selectById(id) ; - if(fPo != null){ - FileRestVo frVo = fileOp.parseHashcode(fmUrl, fPo.hash) ; - if(frVo.fileSysAbsolutePath != null){ - if(!frVo.fileSysAbsolutePath.endsWith("\\\\") && !frVo.fileSysAbsolutePath.endsWith("/") ){ - frVo.fileSysAbsolutePath = frVo.fileSysAbsolutePath + "/" ; + try{ + OthFile fPo = sv.selectById(id) ; + if(fPo != null){ + FileRestVo frVo = fileOp.parseHashcode(fmUrl, fPo.hash) ; + if(frVo.fileSysAbsolutePath != null){ + if(!frVo.fileSysAbsolutePath.endsWith("\\\\") && !frVo.fileSysAbsolutePath.endsWith("/") ){ + frVo.fileSysAbsolutePath = frVo.fileSysAbsolutePath + "/" ; + } } - } - String filePath = frVo.fileSysAbsolutePath + fPo.filePath ; - File f = new File(filePath) ; - if(f.exists()){ - String fileReName = fPo.orgName + "." + fPo.extName ; - try { - fileReName = new String(fileReName.getBytes("UTF-8"), "ISO-8859-1"); - } catch (Exception e) { - fileReName = "file" ; - } - rep.addHeader("content-type", "application/octet-stream"); - rep.addHeader("Content-Disposition", "attachment;fileName=" + fileReName); + String filePath = frVo.fileSysAbsolutePath + fPo.filePath ; + File f = new File(filePath) ; + if(f.exists()){ + String fileReName = fPo.orgName + "." + fPo.extName ; + //URLEncoder.encode鍙互闃叉涓枃涔辩爜 + fileReName = URLEncoder.encode(fileReName, "UTF-8").replaceAll("\\+", "%20"); + rep.addHeader("content-type", "application/octet-stream"); + rep.addHeader("Content-Disposition", "attachment;fileName=" + fileReName); - ServletOutputStream out = null; - FileInputStream in = null ; - try { - out = rep.getOutputStream() ; - } catch (Exception ee) { - out = null ; - }finally{ - if(out != null){ - byte[] bs = new byte[1024] ; - int len = -1 ; - try { - in = new FileInputStream(f); - len = in.read(bs) ; - while(len != -1){ - out.write(bs, 0, len); + ServletOutputStream out = null; + FileInputStream in = null ; + try { + out = rep.getOutputStream() ; + } catch (Exception ee) { + out = null ; + }finally{ + if(out != null){ + byte[] bs = new byte[1024] ; + int len = -1 ; + try { + in = new FileInputStream(f); len = in.read(bs) ; - } - } catch (Exception eee) { - } finally { - if(out != null){ - try{ - out.flush(); - out.close(); - }catch(Exception e){ - }finally{ - if(in != null){ - try{ - in.close(); - }catch(Exception e){ + while(len != -1){ + out.write(bs, 0, len); + len = in.read(bs) ; + } + } catch (Exception eee) { + } finally { + if(out != null){ + try{ + out.flush(); + out.close(); + }catch(Exception e){ + }finally{ + if(in != null){ + try{ + in.close(); + }catch(Exception e){ + } } } } } } } + }else{ } }else{ } - }else{ + }catch (Exception e){ + log.error("涓嬭浇鏂囦欢鏃跺紓甯�", e); } + } } -- Gitblit v1.8.0