From 97edb9a09c390946a7e8fce1951cc946816962e2 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 10 Jan 2024 16:26:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=A2=84=E8=A7=88=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=94=AF=E6=8C=81token=E6=A0=A1=E9=AA=8C=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=9C=89=E4=BC=81=E6=A0=87=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/CommonController.java | 81 ------------------- .../sys/controller/SysCommonController.java | 13 +++ 2 files changed, 13 insertions(+), 81 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java index 79c0b6db..e8a8f3b4 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java @@ -145,19 +145,6 @@ public class CommonController { return result; } - /** - * 下载文件 - * - * @param id 传入文件id - * @param request - * @param response - */ - @GetMapping(value = "/download/{id}") - public void download(@PathVariable String id, HttpServletRequest request, HttpServletResponse response) { - downloadAndViewWithWaterMark(id, response); - } - - private void downloadAndView(@PathVariable String id, HttpServletResponse response) { // 查询数据表数据是否存在 @@ -235,74 +222,6 @@ public class CommonController { downloadAndView(id, response); } - private void downloadAndViewWithWaterMark(@PathVariable String id, HttpServletResponse response) { - // 查询数据表数据是否存在 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(OSSFile::getId, id); - OSSFile ossFile = ossFileService.getOne(queryWrapper); - if (null == ossFile) { - throw new JeroBootException("文件不存在.."); - } - // 如果是企标的文件则需要判断当前登录人是否有查看权限,如果没有则需要返回没有权限的文件 - if (StrUtil.isBlank(ossFile.getStandardId())) { - String userId = UserUtils.getUserId(); - - } - String fileUrl = ossFile.getUrl(); - // minio 下载 - // 通过MinioUtil查询时 只需要桶后面的路径 - String minioUrl = MinioUtil.getMinioUrl(); - // Linux/unix 系统下文件路径分隔符为"/" 获取minio与存储桶的路径 - minioUrl = minioUrl + MinioUtil.getBucketName() + "/"; - String url = fileUrl.replace(minioUrl, ""); - // 文件名称 - String fileName = ossFile.getFileName(); - response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1)); - // 设置强制下载不打开 - response.setContentType("application/force-download"); - // 然后在您的controller方法中: - if ("pdf".equalsIgnoreCase(FileUtil.extName(fileName))) { - try (InputStream originalInputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url); - InputStream watermarkedInputStream = sysWaterMarkUtil.addWatermarkToPdf(originalInputStream); - OutputStream outputStream = response.getOutputStream()) { - - if (originalInputStream == null) { - return; - } - - byte[] buf = new byte[1024]; - int len; - while ((len = watermarkedInputStream.read(buf)) > 0) { - outputStream.write(buf, 0, len); - } - response.flushBuffer(); - - } catch (Exception e) { - log.error(e.getMessage()); - response.setStatus(404); - e.printStackTrace(); - } - } else { - try (InputStream inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url); - OutputStream outputStream = response.getOutputStream() - ) { - byte[] buf = new byte[1024]; - int len; - if (inputStream == null) { - return; - } - while ((len = inputStream.read(buf)) > 0) { - outputStream.write(buf, 0, len); - } - response.flushBuffer(); - } catch (Exception e) { - log.error(e.getMessage()); - response.setStatus(404); - e.printStackTrace(); - } - } - } - private void setResponse(HttpServletResponse response, String fileName) { response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1)); // 设置强制下载不打开 diff --git a/laws-modules/src/main/java/com/jero/modules/sys/controller/SysCommonController.java b/laws-modules/src/main/java/com/jero/modules/sys/controller/SysCommonController.java index 99a8d59c..c6ebc09a 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/controller/SysCommonController.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/controller/SysCommonController.java @@ -47,6 +47,19 @@ public class SysCommonController { @Resource private EnterpriseStandardAuthUserService authUserService; + + /** + * 下载文件 + * + * @param id 传入文件id + * @param request + * @param response + */ + @GetMapping(value = "/download/{id}") + public void download(@PathVariable String id, HttpServletRequest request, HttpServletResponse response) { + downloadAndViewWithWaterMark(id, response); + } + /** * 预览图片 *