From 9f4dd1277e2b39c399a4e2e06d1214b9843b8899 Mon Sep 17 00:00:00 2001 From: yuejiayang <146344614+YangLei105@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:06:34 +0800 Subject: [PATCH] =?UTF-8?q?2024.10.30=20=E6=96=87=E6=A1=A3=E6=94=B6?= =?UTF-8?q?=E9=9B=86=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/controller/EamObjectController.java | 9 ++++- .../modules/pms/service/EamObjectService.java | 4 +- .../service/Impl/EamObjectServiceImpl.java | 39 ++++++++++++++++++- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/pms/controller/EamObjectController.java b/src/main/java/com/xujie/sys/modules/pms/controller/EamObjectController.java index 9e3a246c..8e1f6b2a 100644 --- a/src/main/java/com/xujie/sys/modules/pms/controller/EamObjectController.java +++ b/src/main/java/com/xujie/sys/modules/pms/controller/EamObjectController.java @@ -87,8 +87,13 @@ public class EamObjectController { * @throw */ @PostMapping(value = "/downLoadObjectFile") - public void downLoadObjectFile(@RequestParam("id") Integer id,@RequestParam("orderRef3")String orderRef3, HttpServletResponse response) throws UnsupportedEncodingException { - eamObjectService.downLoadObjectFile(id,orderRef3,response); + public void downLoadObjectFile(@RequestParam("id") Integer id, HttpServletResponse response) throws UnsupportedEncodingException { + eamObjectService.downLoadObjectFile(id,response); + } + + @PostMapping(value = "/downLoadObjectFile2") + public void downLoadObjectFile2(@RequestParam("id") Integer id,@RequestParam("orderRef3")String orderRef3, HttpServletResponse response) throws UnsupportedEncodingException { + eamObjectService.downLoadObjectFile2(id,orderRef3,response); } /** diff --git a/src/main/java/com/xujie/sys/modules/pms/service/EamObjectService.java b/src/main/java/com/xujie/sys/modules/pms/service/EamObjectService.java index 5eb1c807..eb270bd3 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/EamObjectService.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/EamObjectService.java @@ -59,7 +59,9 @@ public interface EamObjectService { * @return void * @throw */ - void downLoadObjectFile(Integer id ,String orderRef3,HttpServletResponse response) throws UnsupportedEncodingException; + void downLoadObjectFile(Integer id ,HttpServletResponse response) throws UnsupportedEncodingException; + + void downLoadObjectFile2(Integer id ,String orderRef3,HttpServletResponse response) throws UnsupportedEncodingException; void downLoadObjectFileMes(Integer id, HttpServletResponse response) throws UnsupportedEncodingException; } diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamObjectServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamObjectServiceImpl.java index cb838174..b52424df 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamObjectServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamObjectServiceImpl.java @@ -203,7 +203,44 @@ public class EamObjectServiceImpl implements EamObjectService { } @Override - public void downLoadObjectFile(Integer id,String orderRef3, HttpServletResponse response) throws UnsupportedEncodingException { + public void downLoadObjectFile(Integer id, HttpServletResponse response) throws UnsupportedEncodingException { + //处理路径和名称 + List getFileData = eamObjectMapper.getFileData(id); + if (getFileData.isEmpty()) { + throw new RuntimeException("该文件不存在,请刷新列表"); + } + File file = new File(getFileData.get(0).getUrl()); + //读取缓存1kb + byte[] buffer = new byte[1024]; + FileInputStream fis = null; + BufferedInputStream bis = null; + FileOutputStream fos = null; + BufferedOutputStream bos = null; + response.setContentType("application/force-download;charset=utf-8"); + response.setHeader("Content-disposition", "attachment; filename=" + new String(getFileData.get(0).getFileName().getBytes("gbk"), "iso8859-1")); + try { + //读取文件 + fis = new FileInputStream(file); + //加缓存 + bis = new BufferedInputStream(fis); + //开始读取 + int i = bis.read(buffer); + //设置输出流 + ServletOutputStream os = response.getOutputStream(); + //开始循环读取 + while (i != -1) { + os.write(buffer, 0, i); + i = bis.read(buffer); + } + fis.close(); + fos.close(); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + } + + @Override + public void downLoadObjectFile2(Integer id,String orderRef3, HttpServletResponse response) throws UnsupportedEncodingException { //处理路径和名称 if (orderRef3 == null){ orderRef3 = "9.9";