Browse Source

新增图片上传接口

woody 2 năm trước cách đây
mục cha
commit
9e98ffeff5

+ 7 - 0
pom.xml

@@ -20,6 +20,7 @@
         <trade-api.version>1.0.0-SNAPSHOT</trade-api.version>
         <vehicle-api.version>1.0.0-SNAPSHOT</vehicle-api.version>
         <framework-redis.version>1.0.0-RELEASE</framework-redis.version>
+        <framework-upload.version>1.0.0-RELEASE</framework-upload.version>
         <framework-security.version>1.0.0-RELEASE</framework-security.version>
         <framework-database.version>1.0.0-RELEASE</framework-database.version>
     </properties>
@@ -49,6 +50,12 @@
             <version>${framework-redis.version}</version>
             <optional>true</optional>
         </dependency>
+        <dependency>
+            <groupId>com.chelvc.framework</groupId>
+            <artifactId>framework-upload</artifactId>
+            <version>${framework-upload.version}</version>
+            <optional>true</optional>
+        </dependency>
         <dependency>
             <groupId>com.chelvc.framework</groupId>
             <artifactId>framework-security</artifactId>

+ 49 - 0
src/main/java/com/chelvc/cloud/maintain/controller/FileController.java

@@ -0,0 +1,49 @@
+package com.chelvc.cloud.maintain.controller;
+
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Objects;
+import javax.imageio.ImageIO;
+
+import com.chelvc.framework.base.annotation.UnifiedResponseBody;
+import com.chelvc.framework.base.util.ErrorUtils;
+import com.chelvc.framework.upload.UploadHandler;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 文件接口
+ *
+ * @author Woody
+ * @date 2023/5/4
+ */
+@Validated
+@RestController
+@UnifiedResponseBody
+@RequiredArgsConstructor(onConstructor = @__(@Autowired))
+public class FileController {
+    private final UploadHandler uploadHandler;
+
+    /**
+     * 上传图片
+     *
+     * @param file 图片文件
+     * @return 图片地址
+     * @throws IOException I/O异常
+     */
+    @PostMapping("/file/image")
+    public String uploadImage(@RequestParam("file") MultipartFile file) throws IOException {
+        BufferedImage image;
+        try (InputStream input = file.getInputStream()) {
+            image = ImageIO.read(input);
+        }
+        ErrorUtils.availableResource(Objects.nonNull(image), "图片上传失败");
+        return this.uploadHandler.upload(image);
+    }
+}

+ 4 - 0
src/main/resources/application-dev.yml

@@ -20,3 +20,7 @@ platform:
   security:
     token:
       secret: oauth.token.secret@chelvc!@#2023
+  upload:
+    standard:
+      path: /home/chelvc/upload
+      domain: https://file.chelvc.com

+ 4 - 0
src/main/resources/application-pre.yml

@@ -20,3 +20,7 @@ platform:
   security:
     token:
       secret: oauth.token.secret@chelvc!@#2023
+  upload:
+    standard:
+      path: /home/chelvc/upload
+      domain: https://file.chelvc.com

+ 4 - 0
src/main/resources/application-prod.yml

@@ -20,3 +20,7 @@ platform:
   security:
     token:
       secret: oauth.token.secret@chelvc!@#2023
+  upload:
+    standard:
+      path: /home/chelvc/upload
+      domain: https://file.chelvc.com

+ 4 - 0
src/main/resources/application-test.yml

@@ -20,3 +20,7 @@ platform:
   security:
     token:
       secret: oauth.token.secret@chelvc!@#2023
+  upload:
+    standard:
+      path: /home/chelvc/upload
+      domain: https://file.chelvc.com