From 2d05b4e807bc95caeeb1cc9ec2c6369425f9994d Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期二, 10 八月 2021 16:08:08 +0800
Subject: [PATCH] 社区后台多图片上传接口

---
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java |   57 ++++++++++++++++++++++++++--
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java                                 |   20 ++++++++++
 2 files changed, 73 insertions(+), 4 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java
new file mode 100644
index 0000000..9c6ee8f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("多文件上传返回参数")
+@Data
+public class UploadFilesVO {
+
+    @ApiModelProperty("图片上传url")
+    private String url;
+
+    @ApiModelProperty("描述")
+    private String alt;
+
+    @ApiModelProperty("链接")
+    private String href;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
index f9ff0ee..1fcecf5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -15,6 +15,7 @@
 import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.UploadFilesVO;
 import com.panzhihua.common.model.vos.community.ComActDynVO;
 import com.panzhihua.common.model.vos.community.ComActMessageVO;
 import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
@@ -49,10 +50,8 @@
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -89,6 +88,8 @@
     private int port;
     @Value("${ftp.url}")
     private String url;
+
+    private static  List<String> videoExtensionAllow = Arrays.asList("mp4", "mov");
 
 
     @ApiOperation(value = "社区所有启用的党组织列表", response = PartyOrganizationVO.class)
@@ -701,4 +702,52 @@
         return R.fail("未查询到用户");
     }
 
+    @ApiOperation(value = "批量上传照片/视频 (jpg/jpeg/png/mp4/mov)")
+    @PostMapping(value = "uploads", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile[] files, HttpServletRequest request){
+        String property = System.getProperty("user.dir");
+        String fileExtension = ".jpg";
+
+        List<UploadFilesVO> urlList = new ArrayList<>();
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+
+        for (MultipartFile file:files) {
+            String originName = file.getOriginalFilename();
+            AtomicBoolean isVideo = new AtomicBoolean(false);
+            videoExtensionAllow.forEach(ext ->{
+                String originNameLowerCase = originName.toLowerCase();
+                if(originNameLowerCase.endsWith("." +ext)){
+                    isVideo.set(true);
+                }
+            });
+            if(isVideo.get()){
+                fileExtension = ".mp4";
+            }
+
+            if(originName.toLowerCase().endsWith(".mp3")){
+                fileExtension = ".mp3";
+            }
+
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+            try {
+                InputStream is = file.getInputStream();
+                String fileName = property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+                File file1 = new File(fileName);
+                file.transferTo(file1);
+                boolean delete = file1.delete();
+                log.info("临时文件删除【{}】", delete);
+                sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+                UploadFilesVO fileVO = new UploadFilesVO();
+                fileVO.setUrl(url + "idcard/" + name);
+                urlList.add(fileVO);
+            } catch (Exception e) {
+                log.error("上传文件失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        sftp.logout();
+        return R.ok(urlList);
+    }
+
 }

--
Gitblit v1.7.1