FileUtil.java 2.1 KB
Newer Older
zlt2000's avatar
zlt2000 已提交
1 2 3 4 5 6 7
package com.central.file.utils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;

8
import cn.hutool.core.util.IdUtil;
zlt2000's avatar
zlt2000 已提交
9
import com.central.file.model.FileInfo;
10
import lombok.extern.slf4j.Slf4j;
zlt2000's avatar
zlt2000 已提交
11 12 13 14 15
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件工具类
zlt2000's avatar
zlt2000 已提交
16 17 18
 *
 * @author 作者 owen E-mail: 624191343@qq.com
 */
19
@Slf4j
zlt2000's avatar
zlt2000 已提交
20
public class FileUtil {
21 22 23
	private FileUtil() {
		throw new IllegalStateException("Utility class");
	}
zlt2000's avatar
zlt2000 已提交
24 25

	public static FileInfo getFileInfo(MultipartFile file) throws Exception {
26
		//String md5 = fileMd5(file.getInputStream());
zlt2000's avatar
zlt2000 已提交
27
		FileInfo fileInfo = new FileInfo();
28
		// 将文件的md5设置为文件表的id
29
		fileInfo.setId(IdUtil.fastSimpleUUID());
zlt2000's avatar
zlt2000 已提交
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
		fileInfo.setName(file.getOriginalFilename());
		fileInfo.setContentType(file.getContentType());
		fileInfo.setIsImg(fileInfo.getContentType().startsWith("image/"));
		fileInfo.setSize(file.getSize());
		fileInfo.setCreateTime(new Date());
		return fileInfo;
	}

	/**
	 * 文件的md5
	 *
	 * @param inputStream
	 * @return
	 */
	public static String fileMd5(InputStream inputStream) {
		try {
			return DigestUtils.md5Hex(inputStream);
		} catch (IOException e) {
48
			log.error("fileMd5-error", e);
zlt2000's avatar
zlt2000 已提交
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
		}
		return null;
	}

	public static String saveFile(MultipartFile file, String path) {
		try {
			File targetFile = new File(path);
			if (targetFile.exists()) {
				return path;
			}
			if (!targetFile.getParentFile().exists()) {
				targetFile.getParentFile().mkdirs();
			}
			file.transferTo(targetFile);
			return path;
		} catch (Exception e) {
65
			log.error("saveFile-error", e);
zlt2000's avatar
zlt2000 已提交
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
		}
		return null;
	}

	public static boolean deleteFile(String pathname) {
		File file = new File(pathname);
		if (file.exists()) {
			boolean flag = file.delete();
			if (flag) {
				File[] files = file.getParentFile().listFiles();
				if (files == null || files.length == 0) {
					file.getParentFile().delete();
				}
			}
			return flag;
		}
		return false;
	}
}