java上传图片工具类-企业排班springboot+vue

无敌的宇宙
无敌的宇宙
擅长邻域:Java,HTML,JavaScript,MySQL,支付,退款,图片上传

分类: Java 专栏: springboot+vue企业排班人脸批量热力图 标签: java上传图片工具类-企业排班

2026-02-16 18:16:35 47浏览

java上传图片工具类-企业排班
 

import org.springframework.web.multipart.MultipartFile;

import java.io.*;
import java.util.Date;
import java.util.UUID;

/**
 * 文件上传工具类:用于处理图片等文件的上传和删除操作
 */
public class UploadFile {


    /**
     * 上传图片文件并返回访问路径
     * @param file 接收到的 MultipartFile 文件对象
     * @param package1 子目录标识(如 "notice_detail_img")
     * @return 返回文件的相对访问路径(可用于拼接 URL)
     * @throws Exception 文件处理异常
     */
    public static String upimg(MultipartFile file, String package1) throws Exception {

        // 获取文件格式(png/jpg/gif 等)
        String format = file.getContentType().split("/")[1];

        // 获取当前日期路径格式:yyyy/MM/dd/
        String ymd = DateUtils.DateToString(new Date(), "yyyy/MM/dd") + "/";

        // 拼接完整物理路径:根目录 + 父目录 + 子目录 + 日期
        String path = Sys.Upimg.absolute_path + Sys.Upimg.parentPack + package1 + ymd;

        // 创建目标文件夹(如果不存在)
        File pf = new File(path);
        if (!pf.exists()) {
            pf.mkdirs();
        }

        // 生成唯一文件名:时间戳 + UUID 前10位 + 格式后缀
        String fileName = DateUtils.DateToString(new Date(), "yyyyMMddHHmmss")
                + UUID.randomUUID().toString().replaceAll("-", "").substring(0, 10)
                + "." + format;

        // 构建目标文件对象
        File targetFile = new File(path, fileName);

        // 将上传文件写入服务器
        try {
            file.transferTo(targetFile);
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 构建 HTTP 访问路径(不包含域名/IP)
        String httpimg = Sys.Upimg.parentPack + package1 + ymd + fileName;

        return httpimg; // 返回访问路径
    }




    /**
     * 删除指定路径下的文件(仅物理存在且不是默认文件时才删除)
     * @param path 要删除的文件相对路径
     */
    public static void deleteFile(String path) {
        if (path == null) return;

        // 拼接完整物理路径
        String abPath = Sys.Upimg.absolute_path + path;
        File f = new File(abPath);

        // 如果是默认文件(含 default 字符),则跳过删除
        if (path.indexOf("default") > -1) return;

        // 如果文件存在且为普通文件,则删除
        if (f.exists() && f.isFile()) {
            f.delete();
            System.out.println("==del=file=======:" + abPath + "===========del file============================================");
        }
    }
}

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695