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 0f73b7d2..8dd7fcdd 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 @@ -4,6 +4,7 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.exception.JeroBootException; +import com.jero.common.util.IntekeyUtils; import com.jero.common.util.MinioUtil; import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; @@ -13,15 +14,19 @@ import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.system.util.SysWaterMarkUtil; import com.jero.modules.system.util.UserUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.http.entity.ContentType; import org.springframework.core.io.ClassPathResource; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.charset.StandardCharsets; @@ -143,14 +148,16 @@ public class SysCommonController { // 设置强制下载不打开 response.setContentType("application/force-download"); // 然后在您的controller方法中: + InputStream watermarkedInputStream = null; 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; } + MultipartFile mFile = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), originalInputStream); + InputStream inputStream = IntekeyUtils.getInputStreamByDecryptFile(mFile); + watermarkedInputStream = sysWaterMarkUtil.addWatermarkToPdf(inputStream); byte[] buf = new byte[1024]; int len; @@ -160,8 +167,16 @@ public class SysCommonController { response.flushBuffer(); } catch (Exception e) { - log.error(e.getMessage()); + log.error("error:",e); response.setStatus(404); + }finally { + try { + if (watermarkedInputStream != null){ + watermarkedInputStream.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } } } else { try (InputStream inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url);