From 1f3fea8277e241accd34396b196c7815c6139cf6 Mon Sep 17 00:00:00 2001 From: zkh <1650697374@qq.com> Date: Sun, 7 Dec 2025 18:19:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(file):=20=E6=B7=BB=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=8E=A5=E5=8F=A3=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 为 FileController 的 upload 方法 MultipartFile 参数添加 name 属性 - 在 zkh-common 模块中引入 jakarta.validation-api 和 jakarta.annotation-api 依赖 - 将 springdoc-openapi-common 依赖升级为 springdoc-openapi-starter-webmvc-ui 并指定版本 - 为多个模块的 maven-compiler-plugin 配置添加 -parameters 编译参数 - 移除 zkh-file 和 zkh-web 模块中重复或不必要的 springdoc-openapi 依赖声明 --- zkh-common/pom.xml | 21 ++++++++++++++++++- zkh-data/pom.xml | 3 +++ zkh-file/pom.xml | 9 +++----- .../jcfd/file/controller/FileController.java | 2 +- zkh-log/pom.xml | 10 +++++++++ zkh-web/pom.xml | 9 +++----- 6 files changed, 40 insertions(+), 14 deletions(-) diff --git a/zkh-common/pom.xml b/zkh-common/pom.xml index 604acc3..78185f5 100644 --- a/zkh-common/pom.xml +++ b/zkh-common/pom.xml @@ -14,6 +14,14 @@ Common utilities and base classes for ZKH framework + + jakarta.validation + jakarta.validation-api + + + jakarta.annotation + jakarta.annotation-api + jakarta.persistence jakarta.persistence-api @@ -32,12 +40,23 @@ org.springdoc - springdoc-openapi-common + springdoc-openapi-starter-webmvc-ui + 2.8.14 + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.1 + + + -parameters + + + org.apache.maven.plugins maven-source-plugin diff --git a/zkh-data/pom.xml b/zkh-data/pom.xml index c3b7075..caf900b 100644 --- a/zkh-data/pom.xml +++ b/zkh-data/pom.xml @@ -46,6 +46,9 @@ 1.18.42 + + -parameters + diff --git a/zkh-file/pom.xml b/zkh-file/pom.xml index 3aad25f..1b4d9d4 100644 --- a/zkh-file/pom.xml +++ b/zkh-file/pom.xml @@ -39,12 +39,6 @@ hutool-all 5.8.41 - - org.springdoc - springdoc-openapi-starter-webmvc-ui - 2.8.14 - provided - @@ -60,6 +54,9 @@ spring-boot-configuration-processor + + -parameters + diff --git a/zkh-file/src/main/java/vip/jcfd/file/controller/FileController.java b/zkh-file/src/main/java/vip/jcfd/file/controller/FileController.java index 5087420..1242ea5 100644 --- a/zkh-file/src/main/java/vip/jcfd/file/controller/FileController.java +++ b/zkh-file/src/main/java/vip/jcfd/file/controller/FileController.java @@ -40,7 +40,7 @@ public class FileController { schema = @Schema(implementation = R.class))) @PostMapping public R upload( - @Parameter(description = "要上传的文件", required = true) + @Parameter(description = "要上传的文件", required = true, name = "file") MultipartFile file) { try { FileInfo upload = fileUploadService.upload(file); diff --git a/zkh-log/pom.xml b/zkh-log/pom.xml index 74a32e8..5d6874c 100644 --- a/zkh-log/pom.xml +++ b/zkh-log/pom.xml @@ -26,6 +26,16 @@ + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.1 + + + -parameters + + + org.apache.maven.plugins maven-source-plugin diff --git a/zkh-web/pom.xml b/zkh-web/pom.xml index 52606c2..d895c40 100644 --- a/zkh-web/pom.xml +++ b/zkh-web/pom.xml @@ -43,12 +43,6 @@ com.fasterxml.jackson.datatype jackson-datatype-jsr310 - - org.springdoc - springdoc-openapi-starter-webmvc-ui - 2.8.14 - provided - @@ -64,6 +58,9 @@ spring-boot-configuration-processor + + -parameters + From 1fe871faa83b019dd3f60fc88625b01871433aee Mon Sep 17 00:00:00 2001 From: zkh <1650697374@qq.com> Date: Sun, 7 Dec 2025 21:44:30 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(file):=20=E4=BC=98=E5=8C=96=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0=E4=B8=8B=E8=BD=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 MediaType 导入以支持 multipart 表单数据 - 修改上传接口 consumes 属性为 MULTIPART_FORM_DATA_VALUE - 使用 @RequestPart 注解明确指定文件参数 - 将下载接口路径参数改为查询参数 path - 统一代码缩进风格为四个空格 --- .../jcfd/file/controller/FileController.java | 83 ++++++++++--------- 1 file changed, 42 insertions(+), 41 deletions(-) diff --git a/zkh-file/src/main/java/vip/jcfd/file/controller/FileController.java b/zkh-file/src/main/java/vip/jcfd/file/controller/FileController.java index 1242ea5..030db38 100644 --- a/zkh-file/src/main/java/vip/jcfd/file/controller/FileController.java +++ b/zkh-file/src/main/java/vip/jcfd/file/controller/FileController.java @@ -9,6 +9,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.Resource; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -25,49 +26,49 @@ import java.nio.file.Paths; @RestController("_fileController") @RequestMapping("/file") public class FileController { - private final static Logger log = LoggerFactory.getLogger(FileController.class); - private final IFileUploadService fileUploadService; - private final IFileDownloadService fileDownloadService; + private final static Logger log = LoggerFactory.getLogger(FileController.class); + private final IFileUploadService fileUploadService; + private final IFileDownloadService fileDownloadService; - public FileController(IFileUploadService fileUploadService, IFileDownloadService fileDownloadService) { - this.fileUploadService = fileUploadService; - this.fileDownloadService = fileDownloadService; - } + public FileController(IFileUploadService fileUploadService, IFileDownloadService fileDownloadService) { + this.fileUploadService = fileUploadService; + this.fileDownloadService = fileDownloadService; + } - @Operation(summary = "上传文件", description = "上传文件到服务器") - @ApiResponse(responseCode = "200", description = "上传成功", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = R.class))) - @PostMapping - public R upload( - @Parameter(description = "要上传的文件", required = true, name = "file") - MultipartFile file) { - try { - FileInfo upload = fileUploadService.upload(file); - return R.success(upload); - } catch (IOException e) { - log.error("上传失败", e); - return R.serverError("上传失败"); - } - } + @Operation(summary = "上传文件", description = "上传文件到服务器") + @ApiResponse(responseCode = "200", description = "上传成功", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = R.class))) + @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R upload( + @Parameter(description = "要上传的文件", required = true, name = "file") + @RequestPart("file") MultipartFile file) { + try { + FileInfo upload = fileUploadService.upload(file); + return R.success(upload); + } catch (IOException e) { + log.error("上传失败", e); + return R.serverError("上传失败"); + } + } - @Operation(summary = "下载文件", description = "根据文件路径下载文件") - @ApiResponse(responseCode = "200", description = "下载成功") - @ApiResponse(responseCode = "404", description = "文件未找到") - @GetMapping("{path}") - public ResponseEntity download( - @Parameter(description = "文件路径", required = true) - @PathVariable String path) { - Path normalize = Paths.get(path).normalize(); - try { - Resource download = fileDownloadService.download(normalize.toString()); - return ResponseEntity.ok() - .header("Content-Disposition", "attachment; filename=\"" + download.getFilename() + "\"") - .body(download); - } catch (IOException e) { - log.error("下载失败", e); - return ResponseEntity.notFound().build(); - } - } + @Operation(summary = "下载文件", description = "根据文件路径下载文件") + @ApiResponse(responseCode = "200", description = "下载成功") + @ApiResponse(responseCode = "404", description = "文件未找到") + @GetMapping + public ResponseEntity download( + @Parameter(description = "文件路径", required = true) + @RequestParam("path") String path) { + Path normalize = Paths.get(path).normalize(); + try { + Resource download = fileDownloadService.download(normalize.toString()); + return ResponseEntity.ok() + .header("Content-Disposition", "attachment; filename=\"" + download.getFilename() + "\"") + .body(download); + } catch (IOException e) { + log.error("下载失败", e); + return ResponseEntity.notFound().build(); + } + } }