From 4e2c53f64ea16d437647170aea52ee8b7fd28a73 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 6 Dec 2024 14:08:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=9B=AE=E5=BD=95=E5=92=8C?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E6=96=B0=E5=A2=9E=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D=E6=A0=A1=E9=AA=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../indicator/service/impl/EDDataServiceImpl.java | 11 ++++++++--- .../data/framework/share/util/EleCommonUtil.java | 12 ++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java index 4bf0fb7..6890bac 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java @@ -4,6 +4,7 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.impl; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; import cn.hutool.crypto.SecureUtil; @@ -48,6 +49,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Pattern; /** * @author @@ -152,9 +154,13 @@ public class EDDataServiceImpl implements EDDataService { public Boolean createDataInfo(EDDataInfo edDataInfo) throws Exception { // 获取上级目录的名称 + String fileName = edDataInfo.getDataName(); + Assert.isTrue(EleCommonUtil.isFileNameValid(fileName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符"); + Category categoryParent = new Category(); categoryParent.setCategoryId(edDataInfo.getCategoryId()); List categoryParentList = categoryRepository.selectCategories(categoryParent); + if(categoryParentList.size() < 1) { throw new Exception("上级文件夹不存在"); } @@ -293,8 +299,7 @@ public class EDDataServiceImpl implements EDDataService { * @param parames * @return */ - public Boolean uploadFile(EDDataParams parames) throws Exception - { + public Boolean uploadFile(EDDataParams parames) throws Exception { // 获取目录编码ID String categoryId = parames.getParentId(); @@ -313,7 +318,7 @@ public class EDDataServiceImpl implements EDDataService { String fileType = EleCommonUtil.getFileType(fileFullName); // 获取文件名称 String fileName = EleCommonUtil.getFileName(fileFullName); - + Assert.isTrue(EleCommonUtil.isFileNameValid(fileName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符"); // 判断文件名称是否存在 EDDataParams folderParames = new EDDataParams(); folderParames.setParentId(categoryId); diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/EleCommonUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/EleCommonUtil.java index f0aa751..8eb0774 100644 --- a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/EleCommonUtil.java +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/EleCommonUtil.java @@ -1,7 +1,15 @@ package electromagnetic.data.framework.share.util; +import java.util.regex.Pattern; + public final class EleCommonUtil { + // 正则表达式模式,匹配中文字符、下划线、连字符、加号、数字和英文字符 + private static final String PATTERN = "^[\\u4e00-\\u9fa5a-zA-Z0-9._\\-+]+$"; + + // 编译正则表达式 + private static final Pattern pattern = Pattern.compile(PATTERN); + public static String getFileName(String fileFullName) { if (fileFullName == null) { return ""; @@ -22,4 +30,8 @@ public final class EleCommonUtil { return fileFullName.substring(index + 1); } + public static boolean isFileNameValid(String fileFullName) { + return pattern.matcher(fileFullName).matches(); + } + }