解决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();