From 33fdb033e0a6b5ef6b2f8ac5fc67ad8222e564e5 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 17 五月 2024 14:49:12 +0800
Subject: [PATCH] 下载文件接口,bug修改

---
 src/main/java/com/mindskip/xzs/controller/common/UploadController.java |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/common/UploadController.java b/src/main/java/com/mindskip/xzs/controller/common/UploadController.java
index 4c1f474..70e5a9e 100644
--- a/src/main/java/com/mindskip/xzs/controller/common/UploadController.java
+++ b/src/main/java/com/mindskip/xzs/controller/common/UploadController.java
@@ -3,14 +3,20 @@
 import com.mindskip.xzs.base.RestResponse;
 import com.mindskip.xzs.configuration.RuoYiConfig;
 import lombok.RequiredArgsConstructor;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.core.io.Resource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.HashMap;
 import java.util.UUID;
 
@@ -63,4 +69,32 @@
         }
     }
 
+    /**
+     * 涓嬭浇鏂囦欢锛堝崟涓級
+     */
+    @GetMapping("/download")
+    public void download(@RequestParam String url, @RequestParam String fileName, HttpServletResponse response) throws Exception
+    {
+        // 鎻愬彇鏂囦欢璺緞
+        String filePath = ruoYiConfig.getUrl() + File.separator + url;
+
+        File file = new File(filePath);
+
+        // 妫�鏌ユ枃浠舵槸鍚﹀瓨鍦�
+        if (!file.exists()) {
+            throw new RuntimeException("鏂囦欢涓嶅瓨鍦�");
+        }
+
+        // 璇诲彇鏂囦欢鍐呭
+        byte[] fileContent = Files.readAllBytes(file.toPath());
+
+        // 璁剧疆鍝嶅簲澶�
+        response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
+        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+
+        // 灏嗘枃浠跺唴瀹瑰啓鍏ュ搷搴旇緭鍑烘祦
+        response.getOutputStream().write(fileContent);
+        response.getOutputStream().flush();
+    }
+
 }

--
Gitblit v1.8.0