From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-file/jnpf-file-upload/src/main/java/jnpf/upload/controller/FileUploadController.java |  128 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 0 deletions(-)

diff --git a/jnpf-file/jnpf-file-upload/src/main/java/jnpf/upload/controller/FileUploadController.java b/jnpf-file/jnpf-file-upload/src/main/java/jnpf/upload/controller/FileUploadController.java
new file mode 100644
index 0000000..910f84d
--- /dev/null
+++ b/jnpf-file/jnpf-file-upload/src/main/java/jnpf/upload/controller/FileUploadController.java
@@ -0,0 +1,128 @@
+package jnpf.upload.controller;
+
+import feign.Response;
+import jnpf.entity.FileParameter;
+import jnpf.file.FileUploadApi;
+import jnpf.model.FileListVO;
+import jnpf.model.upload.UploadFileModel;
+import jnpf.util.*;
+import lombok.RequiredArgsConstructor;
+import org.dromara.x.file.storage.core.FileInfo;
+import org.dromara.x.file.storage.core.FileStorageService;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * 鏂囦欢涓婁紶绫�
+ *
+ * @author JNPF寮�鍙戝钩鍙扮粍
+ * @version V3.1.0
+ * @copyright 寮曡繄淇℃伅鎶�鏈湁闄愬叕鍙革紙https://www.jnpfsoft.com锛�
+ * @date 2021-07-20
+ */
+@RequestMapping(value = "/upload")
+@RestController
+@RequiredArgsConstructor
+public class FileUploadController implements FileUploadApi {
+
+    private final FileStorageService fileStorageService;
+
+    /**
+     * 鏂囦欢涓婁紶
+     *
+     * @param multipartFile
+     * @param folderName
+     * @param fileName
+     * @return
+     */
+    @Override
+    @PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public FileInfo uploadFile(@RequestPart("multipartFile") MultipartFile multipartFile, @RequestParam("folderName") String folderName, @RequestParam("fileName") String fileName) {
+        //鏍规嵁鏂囦欢淇濆瓨绫诲瀷閫夋嫨瀵瑰簲鐨勬柟娉�
+        try {
+            return FileUploadUtils.uploadFile(new FileParameter(folderName, fileName), multipartFile);
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    @Override
+    @PostMapping(value = "/replaceFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public boolean replaceFile(@RequestPart("multipartFile") MultipartFile multipartFile,
+                               @RequestParam("folderName") String folderName,
+                               @RequestParam("fileName") String fileName) {
+        try {
+            FileInfo fileInfo = fileStorageService.of(multipartFile)
+                    .setPath(folderName)
+                    .setOriginalFilename(fileName)
+                    .setSaveFilename(fileName)
+                    .upload();
+            return fileInfo != null && fileName.equals(fileInfo.getFilename());
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
+    @Override
+    @NoDataSourceBind
+    @GetMapping(value = "/getByte/{fileName}/{folderName}")
+    public byte[] getByte(@PathVariable("fileName") String fileName, @PathVariable("folderName") String folderName) {
+        return FileUploadUtils.downloadFile(new FileParameter(folderName, fileName));
+    }
+
+    @Override
+    @NoDataSourceBind
+    @GetMapping(value = "/listFiles")
+    public List<FileListVO> getFileList(@RequestParam("folderName") String folderName) {
+        List<FileListVO> data = new LinkedList<>();
+        List<FileListVO> fileList = FileUploadUtils.getFileList(new FileParameter().setRemotePath(folderName).setRecursive(true));
+        for (int i = 0; i < fileList.size(); i++) {
+            FileListVO fileDetail = fileList.get(i);
+            FileListVO fileModel = new FileListVO();
+            fileModel.setFileId(i + "");
+            fileModel.setFileType(fileDetail.getFileType());
+            fileModel.setFileName(fileDetail.getFileName());
+            fileModel.setFileTime(fileDetail.getFileTime());
+            fileModel.setFileSize(fileDetail.getFileSize() == null ? "0" : String.valueOf(fileDetail.getFileSize()));
+            data.add(fileModel);
+        }
+        return data;
+    }
+
+
+
+    @Override
+    @NoDataSourceBind
+    @PostMapping("/downFile")
+    public Response downFile(@RequestBody UploadFileModel model) {
+        try {
+            FileUploadUtils.downloadFile(new FileParameter(model.getFolderName(), model.getObjectName()), ServletUtil.getResponse().getOutputStream());
+        } catch (IOException e) {
+            throw new IllegalArgumentException(e);
+        }
+        return null;
+    }
+
+    @Override
+    @GetMapping("/getFile/{fileId}")
+    public FileInfo getFile(@PathVariable("fileId") String fileId) {
+        return null;
+    }
+
+    @Override
+    @GetMapping("/getDefaultPlatform")
+    public String getDefaultPlatform() {
+        return FileUploadUtils.getDefaultPlatform();
+    }
+
+    @Override
+    @GetMapping("/getVisualList")
+    public List<FileListVO> getVisualList(@RequestParam("folderName") String folderName){
+        return FileUploadUtils.getFileList(new FileParameter().setRemotePath(folderName).setRecursive(true));
+    }
+}

--
Gitblit v1.8.0