From c94e9f0a1fbafb8e95f055a26a376892fe89a84c Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期二, 15 八月 2023 11:33:21 +0800 Subject: [PATCH] 升级commons.io到最新版本2.13.0 --- src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java | 55 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java b/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java index 5b356e2..d92b8f6 100644 --- a/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java +++ b/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java @@ -2,6 +2,8 @@ import java.io.File; import java.io.IOException; +import java.nio.file.Paths; +import java.util.Objects; import org.apache.commons.io.FilenameUtils; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.constant.Constants; @@ -9,13 +11,13 @@ import com.ruoyi.common.exception.file.FileSizeLimitExceededException; import com.ruoyi.common.exception.file.InvalidExtensionException; import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.IdUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.uuid.Seq; import com.ruoyi.framework.config.RuoYiConfig; /** * 鏂囦欢涓婁紶宸ュ叿绫� - * + * * @author ruoyi */ public class FileUploadUtils @@ -89,7 +91,7 @@ * * @param baseDir 鐩稿搴旂敤鐨勫熀鐩綍 * @param file 涓婁紶鐨勬枃浠� - * @param extension 涓婁紶鏂囦欢绫诲瀷 + * @param allowedExtension 涓婁紶鏂囦欢绫诲瀷 * @return 杩斿洖涓婁紶鎴愬姛鐨勬枃浠跺悕 * @throws FileSizeLimitExceededException 濡傛灉瓒呭嚭鏈�澶уぇ灏� * @throws FileNameLengthLimitExceededException 鏂囦欢鍚嶅お闀� @@ -100,8 +102,8 @@ throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, InvalidExtensionException { - int fileNamelength = file.getOriginalFilename().length(); - if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) + int fileNameLength = Objects.requireNonNull(file.getOriginalFilename()).length(); + if (fileNameLength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); } @@ -110,10 +112,9 @@ String fileName = extractFilename(file); - File desc = getAbsoluteFile(baseDir, fileName); - file.transferTo(desc); - String pathFileName = getPathFileName(baseDir, fileName); - return pathFileName; + String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); + file.transferTo(Paths.get(absPath)); + return getPathFileName(baseDir, fileName); } /** @@ -121,33 +122,29 @@ */ public static final String extractFilename(MultipartFile file) { - String fileName = file.getOriginalFilename(); - String extension = getExtension(file); - fileName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension; - return fileName; + return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), + FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file)); } - private static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException + public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException { File desc = new File(uploadDir + File.separator + fileName); - if (!desc.getParentFile().exists()) - { - desc.getParentFile().mkdirs(); - } if (!desc.exists()) { - desc.createNewFile(); + if (!desc.getParentFile().exists()) + { + desc.getParentFile().mkdirs(); + } } return desc; } - private static final String getPathFileName(String uploadDir, String fileName) throws IOException + public static final String getPathFileName(String uploadDir, String fileName) throws IOException { int dirLastIndex = RuoYiConfig.getProfile().length() + 1; String currentDir = StringUtils.substring(uploadDir, dirLastIndex); - String pathFileName = Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; - return pathFileName; + return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; } /** @@ -162,7 +159,7 @@ throws FileSizeLimitExceededException, InvalidExtensionException { long size = file.getSize(); - if (DEFAULT_MAX_SIZE != -1 && size > DEFAULT_MAX_SIZE) + if (size > DEFAULT_MAX_SIZE) { throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024); } @@ -186,12 +183,16 @@ throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension, fileName); } + else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) + { + throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension, + fileName); + } else { throw new InvalidExtensionException(allowedExtension, extension, fileName); } } - } /** @@ -215,7 +216,7 @@ /** * 鑾峰彇鏂囦欢鍚嶇殑鍚庣紑 - * + * * @param file 琛ㄥ崟鏂囦欢 * @return 鍚庣紑鍚� */ @@ -224,8 +225,8 @@ String extension = FilenameUtils.getExtension(file.getOriginalFilename()); if (StringUtils.isEmpty(extension)) { - extension = MimeTypeUtils.getExtension(file.getContentType()); + extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType())); } return extension; } -} \ No newline at end of file +} -- Gitblit v1.9.3