diff --git a/busi-back/busi-back-control/src/main/java/com/huatek/busi/controller/WiringDiagramController.java b/busi-back/busi-back-control/src/main/java/com/huatek/busi/controller/WiringDiagramController.java index 4471dbf..a25e92a 100644 --- a/busi-back/busi-back-control/src/main/java/com/huatek/busi/controller/WiringDiagramController.java +++ b/busi-back/busi-back-control/src/main/java/com/huatek/busi/controller/WiringDiagramController.java @@ -8,6 +8,7 @@ import com.huatek.busi.entity.GlobalSettingItem; import com.huatek.busi.entity.WiringDiagram; import com.huatek.busi.service.*; import com.huatek.busi.where.*; +import com.huatek.torch.frame.exception.OwlException; import com.huatek.torch.frame.tools.ConstantUtil; import com.huatek.torch.frame.tools.ResultUtil; import io.swagger.annotations.Api; @@ -18,10 +19,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; -import java.util.Base64; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; @Api(tags={"一次接线图管理接口"}) @RestController @@ -61,7 +59,28 @@ public class WiringDiagramController { if(globalSettingItem == null || (globalSettingItem.getFileUploadNumber() == null && globalSettingItem.getFileUploadNumber() <= 0)){ return ResultUtil.put(ConstantUtil.REQUEST_FAIL, "BUSINESS.UPLOAD.ANNEX.NUM", ""); } + // 检查文件是否为空 + if (file.isEmpty()) { + throw new OwlException("文件不能为空"); + } + // 获取原始文件名并校验 String fileNamenew = file.getOriginalFilename(); + if (fileNamenew == null || fileNamenew.isEmpty()) { + throw new OwlException("无效的文件名"); + } + // 提取文件后缀(处理包含多个"."的情况) + int lastDotIndex = fileNamenew.lastIndexOf('.'); + if (lastDotIndex == -1) { + throw new OwlException("文件缺少扩展名"); + } + String suffix = fileNamenew.substring(lastDotIndex + 1).toLowerCase(); + // 定义允许的后缀列表(可从配置读取) + List allowedSuffixes = Arrays.asList("jpg", "png", "pdf", "docx", "doc", "xlsx", "xls"); + // 校验后缀合法性 + if (!allowedSuffixes.contains(suffix)) { + throw new OwlException("不支持的文件类型"); + } + // 上传根目录 String rootPath = globalSettingItem.getRootPath(); return iWiringDiagramService.importFile(file.getBytes(), token, "0", fileNamenew, rootPath,type,fileName);