From 626560d6e2d7a8dc86a7ab03039a66c9f80c4ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A1=BE=E5=90=9B=E7=A6=B9?= <2673609096@qq.com> Date: Sun, 17 Aug 2025 10:21:58 +0800 Subject: [PATCH] =?UTF-8?q?farm=E6=A8=A1=E5=9D=97-=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=AE=9E=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/vo/file/FileMultiUploadReqVO.java | 32 ++++++++++++ .../file/vo/file/FileMultiUploadRespVO.java | 51 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileMultiUploadReqVO.java create mode 100644 yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileMultiUploadRespVO.java diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileMultiUploadReqVO.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileMultiUploadReqVO.java new file mode 100644 index 00000000..b109b4e4 --- /dev/null +++ b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileMultiUploadReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file; + +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Size; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@Schema(description = "管理后台 - 多文件上传 Request VO") +@Data +public class FileMultiUploadReqVO { + + @Schema(description = "文件附件列表", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "文件附件列表不能为空") + @Size(max = 10, message = "最多只能上传10个文件") + private List files; + + @Schema(description = "文件目录", example = "XXX/YYY") + private String directory; + + @AssertTrue(message = "文件目录不正确") + @JsonIgnore + public boolean isDirectoryValid() { + return !StrUtil.containsAny(directory, "..", "/", "\\"); + } + +} diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileMultiUploadRespVO.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileMultiUploadRespVO.java new file mode 100644 index 00000000..3de93260 --- /dev/null +++ b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileMultiUploadRespVO.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 多文件上传 Response VO") +@Data +public class FileMultiUploadRespVO { + + @Schema(description = "上传成功的文件列表") + private List successFiles; + + @Schema(description = "上传失败的文件列表") + private List failedFiles; + + @Schema(description = "总文件数") + private Integer totalCount; + + @Schema(description = "成功数量") + private Integer successCount; + + @Schema(description = "失败数量") + private Integer failedCount; + + @Schema(description = "管理后台 - 文件上传结果") + @Data + public static class FileUploadResult { + + @Schema(description = "原始文件名") + private String originalName; + + @Schema(description = "文件访问路径") + private String url; + + @Schema(description = "文件大小(字节)") + private Long size; + + @Schema(description = "文件类型") + private String type; + + @Schema(description = "错误信息") + private String errorMessage; + + @Schema(description = "是否上传成功") + private Boolean success; + + } + +}