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