From c089041fb145cb4e783ae28f6428a98525e3b412 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Wed, 23 Mar 2022 22:28:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=BA=93--=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/oss/service/IOSSFileService.java | 2 +- .../oss/service/impl/OSSFileServiceImpl.java | 20 ++++++++++++++++++- .../system/controller/CommonController.java | 4 ++-- .../BussDocumentLibraryEOServiceImpl.java | 8 +++++++- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java index 2d93b457b..7ae8dd7c4 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java @@ -17,7 +17,7 @@ public interface IOSSFileService extends IService { * @param bizPath 自定义路径 * @return */ - public OSSFile uploadLocal(MultipartFile mf, String bizPath); + public OSSFile uploadLocal(MultipartFile mf, String bizPath,String state); public List getFileInfos(String id); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java index 9db7af050..dccb9b1b1 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java @@ -30,6 +30,12 @@ public class OSSFileServiceImpl extends ServiceImpl impl @Value(value = "${jero.path.upload}") private String uploadpath; + /** + * 文件后缀黑名单 + */ + @Value(value="${jero.fileSuffixLimits}") + private String[] fileSuffixLimits; + @Override public void upload(MultipartFile multipartFile) throws IOException { String fileName = multipartFile.getOriginalFilename(); @@ -51,7 +57,7 @@ public class OSSFileServiceImpl extends ServiceImpl impl * @return */ @Override - public OSSFile uploadLocal(MultipartFile mf, String bizPath) { + public OSSFile uploadLocal(MultipartFile mf, String bizPath,String state) { //处理文件大小,大于100M抛出异常 long fileSize = mf.getSize() / 1024 / 1024; @@ -78,7 +84,19 @@ public class OSSFileServiceImpl extends ServiceImpl impl } fileType = orgName.substring(orgName.lastIndexOf(".")); + String fileTypeStr = ".doc,.DOC,.docx,.DOCX,.xls, .XLS,.xlsx,.XLSX,.pdf,.PDF"; //判断文件类型 + if("0".equals(state)){ + //固定文件 + if(!fileTypeStr.contains(fileType)){ + throw new JeroBootException("只能够上传pdf,word,excel类型的文件。请重新选择文件!"); + } + }else{ + if (CommonUtils.limitFileSuffix(orgName, fileSuffixLimits)) { + throw new JeroBootException("不能上传"+StringUtils.join(fileSuffixLimits, ",")+"类型的文件。请重新选择文件!"); + } + } + if (StringUtils.isNotEmpty(fileType)) { String[] fileTypeArr = {".doc",".DOC",".txt",".TXT", ".docx",".DOCX", ".xls", ".XLS",".xlsx",".XLSX", ".pdf",".PDF", ".png",".PNG", diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java index 6bcbe6869..5921984e1 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java @@ -137,7 +137,7 @@ public class CommonController { */ @ApiOperation(value="文件上传统一方法", notes="文件上传统一方法") @PostMapping(value = "/upload") - public Result upload(HttpServletRequest request, HttpServletResponse response) { + public Result upload(HttpServletRequest request, HttpServletResponse response,String state) { Result result = new Result<>(); String bizPath = request.getParameter("biz"); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; @@ -150,7 +150,7 @@ public class CommonController { bizPath = ""; } } - OSSFile oSSFile = ossFileService.uploadLocal(file, bizPath); + OSSFile oSSFile = ossFileService.uploadLocal(file, bizPath,state); if (oConvertUtils.isNotEmpty(oSSFile)) { result.setResult(oSSFile); result.setSuccess(true); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index e3f73be0e..4cf36a320 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -394,7 +394,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl fieldList = onlCgformFieldService.getFieldList(flag); //文件类型字段 - List fieldFileList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); + List onlCgformFieldList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); + List fieldFileList = onlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); //过滤出字段为树形结构的 if (fieldList.size() != 0) { @@ -458,6 +459,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl