package com.xiaoan.utils;import org.apache.commons.io.filefilter.SuffixFileFilter;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.UUID;/** * @author 23105 * @version 1.0 * @description: 上传文件的工具类 * @date 13/2/2023 下午5:55 */public class UploadFile {    //存储文件上传失败的错误信息    private static Map<String, Object> error_result = new HashMap<>();    //存储头像的上传后果信息    private static Map<String, Object> upload_result = new HashMap<>();    /**     * @description: 效验所上传图片的大小及格局等信息...     * @param: photo     * @param: path     * @return: java.util.Map<java.lang.String, java.lang.Object>     */    private static Map<String, Object> uploadPhoto(MultipartFile photo, String path) {        //限度头像大小(20M)        int MAX_SIZE = 20971520;        //获取图片的原始名称        String orginalName = photo.getOriginalFilename();        //如果保留文件的门路不存在,则创立该目录        File filePath = new File(path);        if (!filePath.exists()) {            filePath.mkdirs();        }        //限度上传文件的大小        if (photo.getSize() > MAX_SIZE) {            error_result.put("success", false);            error_result.put("msg", "上传的图片大小不能超过20M哟!");            return error_result;        }        // 限度上传的文件类型        String[] suffixs = new String[]{".png", ".PNG", ".jpg", ".JPG", ".jpeg", ".JPEG", ".gif", ".GIF", ".bmp", ".BMP"};        SuffixFileFilter suffixFileFilter = new SuffixFileFilter(suffixs);        if (!suffixFileFilter.accept(new File(path + orginalName))) {            error_result.put("success", false);            error_result.put("msg", "禁止上传此类型文件! 请上传图片哟!");            return error_result;        }        return null;    }    /**     * @description: (提取公共代码 : 进步代码的可重用性)获取头像的上传后果信息     * @param: photo     * @param: dirPaht     * @param: portraitPath     * @return: java.util.Map<java.lang.String, java.lang.Object>     */    public static Map<String, Object> getUploadResult(MultipartFile photo, String dirPaht, String portraitPath) {        if (!photo.isEmpty() && photo.getSize() > 0) {            //获取图片的原始名称            String orginalName = photo.getOriginalFilename();            //上传图片,error_result:存储头像上传失败的错误信息            Map<String, Object> error_result = UploadFile.uploadPhoto(photo, dirPaht);            if (error_result != null) {                return error_result;            }            //应用UUID重命名图片名称(uuid__原始图片名称)            String newPhotoName = UUID.randomUUID() + "__" + orginalName;            //将上传的文件保留到目标目录下            try {                photo.transferTo(new File(dirPaht + newPhotoName));                upload_result.put("success", true);                upload_result.put("portrait_path", portraitPath + newPhotoName);//将存储头像的我的项目门路返回给页面            } catch (IOException e) {                e.printStackTrace();                upload_result.put("success", false);                upload_result.put("msg", "上传文件失败! 服务器端产生异样!");                return upload_result;            }        } else {            upload_result.put("success", false);            upload_result.put("msg", "头像上传失败! 未找到指定图片!");        }        return upload_result;    }}