From 7ff278d04ddb3f38ce6a98f831c5f6f5bf919618 Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Sun, 1 Dec 2024 12:15:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:(unify):=20=E8=AF=BB=E5=8F=96=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=9A=84=E7=9B=AE=E5=BD=95=E5=92=8C=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/FileViewerController.java | 48 +++++++++++++++++++ .../model/response/ViewFileResponseVO.java | 14 ++++++ 2 files changed, 62 insertions(+) create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/FileViewerController.java create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/ViewFileResponseVO.java diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/FileViewerController.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/FileViewerController.java new file mode 100644 index 00000000..cea703c2 --- /dev/null +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/FileViewerController.java @@ -0,0 +1,48 @@ +package com.aizuda.snailjob.server.web.controller; + +import com.aizuda.snailjob.server.common.exception.SnailJobServerException; +import com.aizuda.snailjob.server.web.model.response.ViewFileResponseVO; +import com.google.common.collect.Lists; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; + +@RestController +@RequestMapping("/file") +@RequiredArgsConstructor +public class FileViewerController { + + // 显示文件列表 + @GetMapping("/files") + public List listFiles(@RequestParam("rootPath") String rootPath) { + try { + // 读取目录下的文件列表 + return Files.list(Paths.get(rootPath)) + .map(path -> path.getFileName().toString()) + .toList(); + } catch (IOException e) { + throw new SnailJobServerException("获取文件列表失败", e); + } + } + + // 显示文件内容 + @GetMapping("/file") + public ViewFileResponseVO viewFile(@RequestParam("fileName") String fileName, @RequestParam("fullPath") String fullPath) { + try { + // 构建文件路径 + String filePath = Paths.get(fullPath, fileName).toString(); + + // 读取文件内容 + String s = Files.readString(Paths.get(filePath)); + + return ViewFileResponseVO.builder().content(s).build(); + + } catch (IOException e) { + throw new SnailJobServerException("读取文件失败", e); + } + } +} diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/ViewFileResponseVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/ViewFileResponseVO.java new file mode 100644 index 00000000..dfccaaa4 --- /dev/null +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/ViewFileResponseVO.java @@ -0,0 +1,14 @@ +package com.aizuda.snailjob.server.web.model.response; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class ViewFileResponseVO { + private String fileName; + private String filePath; + private String fileSize; + private String content; + +}