解决user冲突,种子封面显示

Change-Id: Ib2de8038d08c57b2681f04a5fd2cb72aed2e953a
diff --git a/src/main/java/com/example/myproject/config/WebConfig.java b/src/main/java/com/example/myproject/config/WebConfig.java
index 5564452..6f9322d 100644
--- a/src/main/java/com/example/myproject/config/WebConfig.java
+++ b/src/main/java/com/example/myproject/config/WebConfig.java
@@ -11,5 +11,7 @@
         // 访问 /uploads/** 映射到本地 D:/Desktop/echo/echo-backend/uploads/
         registry.addResourceHandler("/uploads/**")
                 .addResourceLocations("file:D:/PT/echo-backend/uploads/");
+        registry.addResourceHandler("/torrent-images/**")
+                .addResourceLocations("file:./uploads/torrents/");
     }
 }
diff --git a/src/main/java/com/example/myproject/controller/TorrentController.java b/src/main/java/com/example/myproject/controller/TorrentController.java
index cea2ccf..74cb8f9 100644
--- a/src/main/java/com/example/myproject/controller/TorrentController.java
+++ b/src/main/java/com/example/myproject/controller/TorrentController.java
@@ -27,6 +27,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
@@ -86,7 +87,10 @@
     @PostMapping("/upload")
     public Result uploadTorrent(
             @RequestParam("file") MultipartFile file,
-            @ModelAttribute @Validated TorrentUploadParam param) throws IOException {
+            @RequestParam("coverImage") MultipartFile coverImage,
+            @ModelAttribute @Validated TorrentUploadParam param,
+            HttpServletRequest request
+            ) throws IOException {
         try {
             // 验证用户权限
             // Long userId = StpUtil.getLoginIdAsLong();
@@ -101,6 +105,31 @@
             if (!file.getOriginalFilename().toLowerCase().endsWith(".torrent")) {
                 return Result.error("只支持.torrent文件");
             }
+            if (!coverImage.isEmpty()) {
+                String originalFilename = coverImage.getOriginalFilename();
+                String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
+                String fileName = System.currentTimeMillis() + suffix;
+
+                if (!originalFilename.toLowerCase().matches(".*\\.(jpg|jpeg|png)$")) {
+                    return Result.error("仅支持 JPG/PNG 格式的封面图片");
+                }
+
+
+                // 项目根目录下的 /uploads/torrents/
+                String uploadDir = System.getProperty("user.dir") + "/uploads/torrents/";
+                File dir = new File(uploadDir);
+                if (!dir.exists()) dir.mkdirs(); // 自动创建目录
+
+                File dest = new File(uploadDir + fileName);
+                coverImage.transferTo(dest);
+
+
+                String imageUrl = request.getScheme() + "://" + request.getServerName() + ":" +
+                        request.getServerPort() + "/torrent-images/" + fileName;
+
+
+                param.setImageUrl(imageUrl);
+            }
 
             torrentService.uploadTorrent(file, param);
             return Result.ok();