diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/util/IntekeyUtils.java b/laws-base/laws-base-core/src/main/java/com/jero/common/util/IntekeyUtils.java index 06957b7f..04ea3607 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/util/IntekeyUtils.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/util/IntekeyUtils.java @@ -165,7 +165,6 @@ public class IntekeyUtils { } private static File transferToFile(MultipartFile multipartFile) { -// 选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。 File file = null; try { String originalFilename = multipartFile.getOriginalFilename(); @@ -173,23 +172,38 @@ public class IntekeyUtils { if (StrUtil.isNotBlank(originalFilename) && originalFilename.contains("%")) { originalFilename = java.net.URLDecoder.decode(originalFilename, "UTF-8"); } + if (StrUtil.isBlank(originalFilename)) { + originalFilename = StrUtil.uuid(); + } log.info("originalFilename:" + originalFilename); int index = originalFilename.lastIndexOf("."); - //String[] filename = originalFilename.split("\\."); + + // 设置最大前缀和后缀长度 + int maxPrefixLength = 10; + int maxSuffixLength = 5; + + String prefix; + String suffix = null; + if (index != -1) { - file = File.createTempFile(originalFilename.substring(0, index), originalFilename.substring(index + 1)); + prefix = originalFilename.substring(0, Math.min(index, maxPrefixLength)); + suffix = originalFilename.substring(index, Math.min(originalFilename.length(), index + maxSuffixLength)); } else { - file = File.createTempFile(originalFilename, null); + prefix = originalFilename.substring(0, Math.min(originalFilename.length(), maxPrefixLength)); } + + // 创建临时文件 + file = File.createTempFile(prefix, suffix); file.delete(); multipartFile.transferTo(file); file.deleteOnExit(); } catch (IOException e) { - e.printStackTrace(); + log.error("文件解密失败", e); } return file; } + public static InputStream getInputStreamByDecryptFile(MultipartFile file) { if (ENABLE) { return decryptFile(DECRYPT_URL, DECRYPT_APP_CODE, DECRYPT_SECRET_KEY, null, file);