diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java index 0f78958d58..5664533b48 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java @@ -272,4 +272,36 @@ public class OssController { return ossService.extUpload(filse,fileName); } + /** + * @param file + * @Description 外挂-文件上传 + * @Author sun + **/ + @PostMapping("uploadvariedfile") + public Result uploadVariedFile(@RequestParam("file") MultipartFile file) { + String fileName = file.getOriginalFilename(); + String format = "-" + fileName.substring(fileName.lastIndexOf(".") + NumConstant.ONE) + "-"; + //1.校验上传文件类型 + if (!ModuleConstant.PROJECT_FILE_CONTENT.contains(format)) { + log.error(String.format("上传文件类型格式错误,暂不支持此类文件上传,文件名->%s", fileName)); + throw new RenException(EpmetErrorCode.OPER_UPLOAD_FILE_TYPE_ERROR.getCode(), EpmetErrorCode.OPER_UPLOAD_FILE_TYPE_ERROR.getMsg()); + } + + long size = file.getSize(); + //2.校验文件体积大小 + long maxSize = 0; + if (ModuleConstant.PROJECT_FILE_IMAGE.contains(format)) {//单个图片10M + maxSize = 10 * 1024 * 1024; + } else if (ModuleConstant.PROJECT_FILE_DOC.contains(format)) {//单个文件5M + maxSize = 5 * 1024 * 1024; + } else if (ModuleConstant.PROJECT_FILE_VIDEO.contains(format)) {//单个视频10M + maxSize = 10 * 1024 * 1024; + } + if (size > maxSize) { + throw new RenException(EpmetErrorCode.OPER_UPLOAD_FILE_OVER_SIZE.getCode(), EpmetErrorCode.OPER_UPLOAD_FILE_OVER_SIZE.getMsg()); + } + + return ossService.uploadVariedFile(file); + } + } diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java index c67fec06f2..c9abc33326 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java @@ -31,4 +31,6 @@ public interface OssService extends BaseService { Result uploadImg(MultipartFile file); Result extUpload(MultipartFile file, String fileName); + + Result uploadVariedFile(MultipartFile file); } diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java index cc44456c7e..5b657665d5 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java @@ -104,4 +104,30 @@ public class OssServiceImpl extends BaseServiceImpl implement dto.setUrl(url); return new Result().ok(dto); } + + @Override + public Result uploadVariedFile(MultipartFile file) { + if (file.isEmpty()) { + return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY); + } + //上传文件 + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + String url = null; + try { + url = OssFactory.build().uploadSuffix(file.getBytes(), extension); + } catch (IOException e) { + e.printStackTrace(); + logger.error("文件上传异常"); + throw new RenException("文件上传异常"); + } + //保存文件信息 + OssEntity ossEntity = new OssEntity(); + ossEntity.setUrl(url); + baseDao.insert(ossEntity); + //文件信息 + UploadImgResultDTO dto = new UploadImgResultDTO(); + dto.setUrl(url); + return new Result().ok(dto); + } + } diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/utils/ModuleConstant.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/utils/ModuleConstant.java index efa289bd61..a89b14fbd1 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/utils/ModuleConstant.java +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/utils/ModuleConstant.java @@ -26,4 +26,25 @@ public interface ModuleConstant extends Constant { * jpg文件类型 */ String FILE_CONTENT_TYPE_JPG = "image/jpg"; + + /** + * 项目附件-允许上传的文件类型 + */ + String PROJECT_FILE_CONTENT = "-jpg-png-jpeg-bmp-gif-pdf-ppt-pptx-doc-docx-xls-xlsx-mp4-avi-mov-rmvb-rm-wmv-"; + /** + * 项目附件-允许的图片类型 + */ + String PROJECT_FILE_IMAGE = "-jpg-png-jpeg-bmp-gif-"; + /** + * 项目附件-允许的文件类型 + */ + String PROJECT_FILE_DOC = "-pdf-ppt-pptx-doc-docx-xls-xlsx-"; + /** + * 项目附件-允许的音频类型 + */ + String PROJECT_FILE_VOICE = "-mp3-wma-m4a-"; + /** + * 项目附件-允许的视频类型 + */ + String PROJECT_FILE_VIDEO = "-mp4-avi-mov-rmvb-rm-wmv-"; }