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); + } + /** * 预览图片 *