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();
+ }
+ }
}