java上传图片工具类-企业排班springboot+vue
分类: 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)展开评论
暂无评论,快来写一下吧
展开评论
他的专栏
他感兴趣的技术






java
vue
springboot
Mysql
ssm
小程序
uniapp
js和jquery