智慧保安后台管理-外网
Administrator
2021-12-16 91a15ff1100e64455a7bbe9c5e4015656db7e9c1
1. 图片批量导入图片大小控制
2 files modified
26 ■■■■■ changed files
src/main/java/org/springblade/common/utils/FileUtil.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/resource/endpoint/OssEndpoint.java 23 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/utils/FileUtil.java
@@ -4,9 +4,12 @@
import java.nio.channels.FileChannel;
import java.util.List;
import net.lingala.zip4j.core.ZipFile;
import org.springblade.core.log.exception.ServiceException;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import javax.sql.rowset.serial.SerialException;
public class FileUtil {
    public static void clearFiles(String workspaceRootPath) {
src/main/java/org/springblade/modules/resource/endpoint/OssEndpoint.java
@@ -21,6 +21,7 @@
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.config.FileConfig;
import org.springblade.common.config.FtpConfig;
import org.springblade.common.utils.FileUtil;
@@ -54,6 +55,7 @@
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.regex.Pattern;
import static org.springblade.common.config.FtpConfig.*;
@@ -388,7 +390,24 @@
        //获取图片文件
//        fileList = fileUtil.getSubFiles(desPath+File.separator+namePath,fileList);
        fileList = fileUtil.getSubFiles(desPath,fileList);
        //将不能导入的保安员账号存起来
        List<String> errorList = new ArrayList<>();
        //导入状态,默认为true ,如果有一个出现问题则为 false
        AtomicBoolean status = new AtomicBoolean(true);
        //遍历
        for (MultipartFile multipartFile : fileList){
            long size = multipartFile.getSize();
            if (size<30*1024 || size>500*1024){
                status.set(false);
                //取出身份证号,查询用户信息,更新用户信息
                String pictrueName = multipartFile.getName().substring(0, multipartFile.getName().lastIndexOf("."));
                String regex ="[\u4e00-\u9fa5]";
                Pattern compile = Pattern.compile(regex);
                String idCardNo = compile.matcher(pictrueName).replaceAll("");
                //加入集合
                errorList.add(idCardNo);
            }
            if(multipartFile.getName().toLowerCase().endsWith(".png") || multipartFile.getName().toLowerCase().endsWith(".jpg")) {
                String newName = "upload/picture/" + UUID.randomUUID().toString().replaceAll("-", "") + multipartFile.getName().substring(multipartFile.getName().lastIndexOf("."));
                InputStream in = multipartFile.getInputStream();
@@ -437,6 +456,10 @@
        FileUtil.clearFiles(desPath);
        //数据封装
        map.put("data", "上传成功!");
        if (!status.get()) {
            String errorAccount = StringUtils.join(errorList, "\\\n");
            throw new ServiceException("用户:[" + errorAccount + "]照片导入失败!照片不能小于30KB,且不能大于500KB!!");
        }
        //返回
        return R.data(map);
    }