huanghongfa
2021-08-10 2d05b4e807bc95caeeb1cc9ec2c6369425f9994d
社区后台多图片上传接口
1个文件已修改
1个文件已添加
77 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java
New file
@@ -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;
}
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);
    }
}