From 23f6b2ce5b4fd434aa94b325ec4e69985347f646 Mon Sep 17 00:00:00 2001 From: ganhao Date: Wed, 27 May 2026 09:57:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8C=87=E5=AE=9A=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E7=9A=84=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/util/file/MimeTypeUtils.java | 2 ++ .../controller/common/FileController.java | 14 +++++++++++ .../service/common/FileUploadApi.java | 9 +++++++ .../common/impl/FileUploadApiImpl.java | 24 +++++++++++++++++++ 4 files changed, 49 insertions(+) diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/file/MimeTypeUtils.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/file/MimeTypeUtils.java index ce41ead2..42b3efd6 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/file/MimeTypeUtils.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/file/MimeTypeUtils.java @@ -24,6 +24,8 @@ public class MimeTypeUtils public static final String[] MEDIA_EXTENSION = { "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg", "asf", "rm", "rmvb" }; + public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb", "mkv", "wmv", "flv" }; + public static final String[] DEFAULT_ALLOWED_EXTENSION = { // 图片 "bmp", "gif", "jpg", "jpeg", "png", diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/common/FileController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/common/FileController.java index e4fa0733..bb2602cd 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/common/FileController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/common/FileController.java @@ -39,4 +39,18 @@ public class FileController extends BaseController { return R.ok("上传成功", filePath); } + + + /** + * 上传文件(支持指定上传目录) + * + * @param file 文件 + * @param dir 上传目录(相对路径,如:images、videos、documents等,默认为根目录) + */ + @Log(title = "文件上传", businessType = BusinessType.INSERT) + @PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R uploadFile(@RequestPart("file") MultipartFile file, String dir) { + String filePath = fileUploadApi.uploadWithType(file, dir); + return R.ok("上传成功", filePath); + } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/FileUploadApi.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/FileUploadApi.java index 4c900c73..086cca25 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/FileUploadApi.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/FileUploadApi.java @@ -25,4 +25,13 @@ public interface FileUploadApi { */ String upload(MultipartFile file); + /** + * 上传文件(指定上传目录) + * + * @param file 上传的文件 + * @param dir 上传目录(相对路径,如:images、videos、documents等) + * @return 文件路径 + */ + String uploadWithType(MultipartFile file, String dir); + } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/impl/FileUploadApiImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/impl/FileUploadApiImpl.java index 659cec0d..5aaa42ce 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/impl/FileUploadApiImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/common/impl/FileUploadApiImpl.java @@ -3,6 +3,7 @@ package com.zdxt.enforcementcode.service.common.impl; import com.zdxt.enforcementcode.common.config.RuoYiConfig; import com.zdxt.enforcementcode.common.util.file.FileUploadUtils; +import com.zdxt.enforcementcode.common.util.file.MimeTypeUtils; import com.zdxt.enforcementcode.service.common.FileUploadApi; import org.dromara.common.core.exception.base.BaseException; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +23,7 @@ public class FileUploadApiImpl implements FileUploadApi { @Autowired RuoYiConfig ruoYiConfig; + @Override public String upload(MultipartFile file) { String filePath = RuoYiConfig.getUploadPath(); @@ -32,4 +34,26 @@ public class FileUploadApiImpl implements FileUploadApi { } } + @Override + public String uploadWithType(MultipartFile file, String dir) { + try { + // 构建完整的上传路径:基础路径 + 指定目录 + String basePath = RuoYiConfig.getUploadPath(); + String uploadPath; + + if (dir != null && !dir.isEmpty()) { + // 去除目录前后的斜杠,避免路径问题 + String cleanDir = dir.trim().replaceAll("^/+|/+$", ""); + uploadPath = basePath + "/" + cleanDir; + } else { + // 如果未指定目录,使用默认上传路径 + uploadPath = basePath; + } + + return FileUploadUtils.upload(uploadPath, file); + } catch (Exception e) { + throw new BaseException("上传失败: " + e.getMessage()); + } + } + }