Quellcode durchsuchen

feat:新增图片上传接口

yangyi vor 4 Monaten
Ursprung
Commit
f2d379a102

+ 54 - 0
src/main/java/com/campus/trade/controller/AttachmentController.java

@@ -0,0 +1,54 @@
+package com.campus.trade.controller;
+
+import com.campus.trade.common.FileUploadUtil;
+import com.campus.trade.common.Result;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * 附件上传控制器
+ * 提供图片上传接口,支持单张和批量上传,需要登录后才能使用
+ */
+@RestController
+@RequestMapping("/attachment")
+@Tag(name = "Attachment", description = "附件上传接口(需登录)")
+public class AttachmentController {
+
+    @Autowired
+    private FileUploadUtil fileUploadUtil;
+
+    /**
+     * 单张图片上传
+     * @param file 图片文件,支持 jpg、jpeg、png、gif、webp 格式
+     * @return 图片访问 URL
+     */
+    @Operation(summary = "单张图片上传", operationId = "uploadImage", description = "上传单张图片,返回图片访问 URL,需要登录")
+    @PostMapping(value = "/upload/image", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public Result<String> uploadImage(
+            @Parameter(description = "图片文件,支持 jpg、jpeg、png、gif、webp 格式,最大 10MB")
+            @RequestParam("file") MultipartFile file) {
+        String url = fileUploadUtil.upload(file);
+        return Result.success(url);
+    }
+
+    /**
+     * 批量图片上传
+     * @param files 图片文件列表,支持 jpg、jpeg、png、gif、webp 格式
+     * @return 图片访问 URL 列表
+     */
+    @Operation(summary = "批量图片上传", operationId = "uploadImages", description = "批量上传多张图片,返回图片访问 URL 列表,需要登录")
+    @PostMapping(value = "/upload/images", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public Result<List<String>> uploadImages(
+            @Parameter(description = "图片文件列表,支持 jpg、jpeg、png、gif、webp 格式,每个文件最大 10MB")
+            @RequestParam("files") List<MultipartFile> files) {
+        List<String> urls = fileUploadUtil.uploadBatch(files);
+        return Result.success(urls);
+    }
+}

+ 0 - 1
src/main/java/com/campus/trade/interceptor/AuthInterceptor.java

@@ -21,7 +21,6 @@ public class AuthInterceptor implements HandlerInterceptor {
             "/items/search",
             "/items/category/",
             "/categories",
-            "/upload",
             "/v3/api-docs",
             "/swagger-ui",
             "/api-docs"