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