From 672ce84d5ce6545a0e81709ea736c69cbbef8c1a Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期四, 24 四月 2025 18:12:47 +0800 Subject: [PATCH] zjh20250424 --- ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 48 insertions(+), 2 deletions(-) diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java b/ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java index 746ff21..a93097f 100644 --- a/ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java +++ b/ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java @@ -3,6 +3,8 @@ import java.io.File; import java.io.IOException; import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; import java.util.Objects; import com.ltkj.common.config.ltkjConfig; @@ -76,6 +78,14 @@ } } + public static final String upload(String baseDir,String fileName,MultipartFile file) throws IOException { + try { + return upload(baseDir,fileName, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); + } catch (Exception e) { + throw new IOException(e.getMessage(), e); + } + } + /** * 鏂囦欢涓婁紶 * @@ -100,16 +110,38 @@ String fileName = extractFilename(file); - //String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); String absPath = getAbsoluteFile(baseDir, fileName).getPath(); file.transferTo(Paths.get(absPath)); return getPathFileName(baseDir, fileName); + } + + public static final String upload(String baseDir,String fileName, MultipartFile file, String[] allowedExtension) + throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, + InvalidExtensionException { + int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length(); + if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { + throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); + } + + assertAllowed(file, allowedExtension); + + fileName =StringUtils.format("{}/{}.{}", DateUtils.datePath(), + fileName, getExtension(file)); + + String absPath = getAbsoluteFile(baseDir, fileName).getPath(); + file.transferTo(Paths.get(absPath)); + return fileName; } /** * 缂栫爜鏂囦欢鍚� */ public static final String extractFilename(MultipartFile file) { + return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), + FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file)); + } + + public static final String extractXdtFilename(MultipartFile file) { return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file)); } @@ -128,8 +160,9 @@ public static final String getPathFileName(String uploadDir, String fileName) throws IOException { int dirLastIndex = ltkjConfig.getProfile().length() + 1; String currentDir = StringUtils.substring(uploadDir, dirLastIndex); - return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; + return Constants.RESOURCE_PREFIX + currentDir + "/" + fileName; } + /** * 鏂囦欢澶у皬鏍¢獙 @@ -196,4 +229,17 @@ } return extension; } + + public static Map<String, String> getFileSize(MultipartFile file) throws IOException { + long fileSizeBytes = file.getSize(); + double fileSizeMB = fileSizeBytes / (1024.0 * 1024.0); + double fileSizeGB = fileSizeBytes / (1024.0 * 1024.0 * 1024.0); + String fileSizeMBStr = String.format("%.2f MB", fileSizeMB); + String fileSizeGBStr = String.format("%.2f GB", fileSizeGB); + Map<String, String> result = new HashMap<>(); + result.put("fileSizeBytes", fileSizeBytes + " Bytes"); + result.put("fileSizeMB", fileSizeMBStr); + result.put("fileSizeGB", fileSizeGBStr); + return result; + } } -- Gitblit v1.8.0