From f9acca94bd913c3e155dc86245df372910f8d76e Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 09 九月 2025 14:46:39 +0800
Subject: [PATCH] 视频下载问题以及文档

---
 文档.md                                                                  |   30 +++++++++++++++
 src/main/java/com/mindskip/xzs/controller/common/UploadController.java |   47 +++++++++++++++++------
 2 files changed, 65 insertions(+), 12 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 078ef2c..406c700 100644
--- a/src/main/java/com/mindskip/xzs/controller/common/UploadController.java
+++ b/src/main/java/com/mindskip/xzs/controller/common/UploadController.java
@@ -12,10 +12,9 @@
 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.io.*;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.util.HashMap;
 import java.util.UUID;
@@ -85,16 +84,40 @@
             throw new RuntimeException("鏂囦欢涓嶅瓨鍦�");
         }
 
-        // 璇诲彇鏂囦欢鍐呭
-        byte[] fileContent = Files.readAllBytes(file.toPath());
-
-        // 璁剧疆鍝嶅簲澶�
-        response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
+        String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.name());
+        response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
         response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+        response.setContentLengthLong(file.length()); // 璁剧疆鏂囦欢澶у皬锛屼究浜庢祻瑙堝櫒鏄剧ず杩涘害
 
-        // 灏嗘枃浠跺唴瀹瑰啓鍏ュ搷搴旇緭鍑烘祦
-        response.getOutputStream().write(fileContent);
-        response.getOutputStream().flush();
+
+        // 娴佸紡浼犺緭锛氫娇鐢ㄧ紦鍐叉祦鍒嗗潡璇诲啓锛岄伩鍏嶄竴娆℃�у姞杞芥暣涓枃浠跺埌鍐呭瓨
+        try (InputStream in = new BufferedInputStream(new FileInputStream(file));
+             OutputStream out = new BufferedOutputStream(response.getOutputStream())) {
+
+            byte[] buffer = new byte[8192]; // 8KB缂撳啿鍖�
+            int len;
+            // 寰幆璇诲彇鏂囦欢鍐呭锛屾瘡娆¤8KB锛屽啓鍏ュ搷搴旇緭鍑烘祦
+            while ((len = in.read(buffer)) != -1) {
+                out.write(buffer, 0, len);
+            }
+            out.flush(); // 纭繚鏈�鍚庝竴閮ㄥ垎鏁版嵁琚啓鍑�
+        } catch (IOException e) {
+            throw new RuntimeException("鏂囦欢涓嬭浇澶辫触", e);
+        }
+
+
+//        // 璇诲彇鏂囦欢鍐呭
+//        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();
     }
 
 }
diff --git "a/\346\226\207\346\241\243.md" "b/\346\226\207\346\241\243.md"
new file mode 100644
index 0000000..fa45e43
--- /dev/null
+++ "b/\346\226\207\346\241\243.md"
@@ -0,0 +1,30 @@
+# 娴嬭瘯鐜
+
+鏈嶅姟鍣↖P锛�80.36.32.171
+
+杩滅▼杩炴帴锛歳oot    Bai_123
+
+## 椤圭洰jar鍖呭湴鍧�
+/usr/local/fzdd/jv
+## 鏃ュ織鍦板潃
+/usr/log/xzs
+
+## 璐﹀彿瀵嗙爜
+
+### 鑰冭瘯鍚庡彴
+
+```
+admin
+123456
+```
+
+### 鑰冭瘯瀹㈡埛绔�
+
+```
+student
+123456
+```
+
+
+
+

--
Gitblit v1.8.0