package com.kidgrow.filecenter.util;
import cn.hutool.core.util.IdUtil;
import com.kidgrow.filecenter.model.FileInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
*
* @Description: 文件工具类
* @Project:
* @CreateDate: Created in 2020/2/18 11:25
* @Author: liuke
*/
@Slf4j
public class FileUtil {
private FileUtil() {
throw new IllegalStateException("Utility class");
}
public static FileInfo getFileInfo(MultipartFile file) throws Exception {
//String md5 = fileMd5(file.getInputStream());
FileInfo fileInfo = new FileInfo();
// 将文件的md5设置为文件表的id
fileInfo.setId(IdUtil.fastSimpleUUID());
fileInfo.setName(file.getOriginalFilename());
fileInfo.setContentType(file.getContentType());
if (fileInfo.getContentType().startsWith("image/")) {
fileInfo.setIsImg(true);
}
else if (fileInfo.getContentType().startsWith("multipart")){
String extendName = file.getOriginalFilename().substring(file.getOriginalFilename().indexOf(".")+1,file.getOriginalFilename().length()).toLowerCase();
if (extendName.equals("png") || extendName.equals("bmp") || extendName.equals("jpg") || extendName.equals("jpeg") || extendName.equals("gif")) {
fileInfo.setIsImg(true);
} else {
fileInfo.setIsImg(false);
}
} else {
fileInfo.setIsImg(false);
}
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) {
log.error("fileMd5-error", e);
}
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) {
log.error("saveFile-error", e);
}
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;
}
}