From 155a303bec24d63335e7ac9ab401afcda6154cbf Mon Sep 17 00:00:00 2001 From: PIG AI Date: Tue, 3 Jun 2025 10:29:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(sys-file):=20=E6=94=AF=E6=8C=81=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=96=87=E4=BB=B6=E5=90=8D=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在文件上传接口中增加fileName参数以支持自定义文件名 - 当未提供fileName时保持原有UUID生成逻辑 - 同步修改相关controller和feign接口的签名 - 完善相关方法的JavaDoc注释 --- .../admin/api/feign/RemoteFileService.java | 5 +++-- .../admin/controller/SysFileController.java | 15 +++++++++---- .../pigx/admin/service/SysFileService.java | 21 ++++++++++-------- .../service/impl/SysFileServiceImpl.java | 22 +++++++++++-------- 4 files changed, 39 insertions(+), 24 deletions(-) diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/feign/RemoteFileService.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/feign/RemoteFileService.java index 517795b3d..a31ee7c28 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/feign/RemoteFileService.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/feign/RemoteFileService.java @@ -43,10 +43,11 @@ public interface RemoteFileService { /** * 内部上传文件接口 * - * @param file 要上传的文件 + * @param file 要上传的文件 + * @param fileName 文件名 * @return 上传结果 */ @NoToken @PostMapping(value = "/sys-file/inner/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - R innerUpload(@RequestPart("file") MultipartFile file); + R innerUpload(@RequestPart("file") MultipartFile file, @RequestParam String fileName); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysFileController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysFileController.java index 595f2b440..11c65c47a 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysFileController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysFileController.java @@ -109,22 +109,29 @@ public class SysFileController { @PostMapping(value = "/upload") public R upload(@RequestPart("file") MultipartFile file, @RequestParam(value = "dir", required = false) String dir, @RequestParam(value = "groupId", required = false) Long groupId, - @RequestParam(value = "type", required = false) String type) { - return sysFileService.uploadFile(file, dir, groupId, type); + @RequestParam(value = "type", required = false) String type, + @RequestParam(value = "fileName", required = false) String fileName) { + return sysFileService.uploadFile(file, fileName, dir, groupId, type); } /** * 内部文件上传接口 * + * @param file 上传的文件 + * @param dir 文件存储目录 + * @param groupId 文件分组ID + * @param type 文件类型 + * @param fileName 自定义文件名 * @return 文件上传结果 */ @Inner @PostMapping(value = "/inner/upload") public R innerUpload(@RequestPart("file") MultipartFile file, @RequestParam(value = "dir", required = false) String dir, @RequestParam(value = "groupId", required = false) Long groupId, - @RequestParam(value = "type", required = false) String type) { - return sysFileService.uploadFile(file, dir, groupId, type); + @RequestParam(value = "type", required = false) String type, + @RequestParam(value = "fileName", required = false) String fileName) { + return sysFileService.uploadFile(file, fileName, dir, groupId, type); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysFileService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysFileService.java index 71e6ff969..aded55512 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysFileService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysFileService.java @@ -38,13 +38,15 @@ public interface SysFileService extends IService { /** * 上传文件 - * @param file 文件流 - * @param dir 文件夹 - * @param groupId 分组ID - * @param type 类型 - * @return + * + * @param file 文件流 + * @param fileName 文件名 + * @param dir 存储目录 + * @param groupId 文件分组ID + * @param type 文件类型 + * @return 上传结果 */ - R uploadFile(MultipartFile file, String dir, Long groupId, String type); + R uploadFile(MultipartFile file, String fileName, String dir, Long groupId, String type); /** * 读取文件 @@ -54,9 +56,10 @@ public interface SysFileService extends IService { void getFile(String fileName, HttpServletResponse response); /** - * 删除文件 - * @param id - * @return + * 根据文件ID删除文件 + * + * @param id 文件ID + * @return 删除是否成功 */ Boolean deleteFile(Long id); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java index 2c6529a66..fe9cb5acc 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java @@ -77,15 +77,19 @@ public class SysFileServiceImpl extends ServiceImpl impl /** * 上传文件 * - * @param file 文件流 - * @param dir 文件夹 - * @param groupId 分组ID - * @param type 类型 + * @param file 文件流 + * @param fileName + * @param dir 文件夹 + * @param groupId 分组ID + * @param type 类型 * @return */ @Override - public R uploadFile(MultipartFile file, String dir, Long groupId, String type) { - String fileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename()); + public R uploadFile(MultipartFile file, String fileName, String dir, Long groupId, String type) { + // 如果客户端没有传入文件名,则使用UUID生成一个唯一的文件名 + if (StrUtil.isBlank(fileName)) { + fileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename()); + } Map resultMap = new HashMap<>(4); resultMap.put("bucketName", properties.getBucketName()); resultMap.put("fileName", fileName); @@ -132,10 +136,10 @@ public class SysFileServiceImpl extends ServiceImpl impl } /** - * 删除文件 + * 根据ID删除文件 * - * @param id - * @return + * @param id 文件ID + * @return 删除是否成功,文件不存在时返回false */ @Override @SneakyThrows