package com.lst.lc.utils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.springframework.web.multipart.MultipartFile;
public class MultipartFileUtils {
/**
* 存储文件
* 将MultipartFile格式的文件存储到存储介质上,命名格式为MD5Hash(name+UNIX时间戳)
* 将存储的绝对路径返回
* @param multipartFile 待存储的文件
* @param path 存储的路径
* @return 文件的绝对路径
*/
public static String saveFile(MultipartFile multipartFile,String path){
long unixTime = System.currentTimeMillis();
String name = HashUtils.HashPath(multipartFile.getOriginalFilename()+unixTime);
String multipartUrl = path+"/"+name;
File file = null;
try {
file = new File(path);
if(!file.exists()){
file.mkdirs();
}
byte[] buffer = multipartFile.getBytes();
FileOutputStream fStream = new FileOutputStream(multipartUrl);
fStream.write(buffer);
fStream.close();
} catch (IOException e) {
multipartUrl = "";
e.printStackTrace();
}
return multipartUrl;
}
public static String updateFile(MultipartFile multipartFile, String path){
removeFile(path);
int lastIndex = path.lastIndexOf("/");
path = path.substring(0, lastIndex);
long unixTime = System.currentTimeMillis();
path += HashUtils.HashPath(multipartFile.getOriginalFilename()+unixTime);
String multipartUrl = saveFile(multipartFile, path);
return multipartUrl;
}
/**
* 删除文件
* @param path 待删除的文件路径
*/
public static void removeFile(String path){
File file = null;
file = new File(path);
if(file.exists()){
file.delete();
}
}
/**
* 删除文件夹
* @param file 待删除的文件夹
*/
public static void deleteFile(File file) {
File[] files = file.listFiles();
if (files != null)
for (File f : files)
deleteFile(f);
file.delete();
}
/**
* 删除文件夹
* @param file 待删除的文件夹路径
*/
public static void deleteFile(String path) {
File file = new File(path);
File[] files = file.listFiles();
if (files != null)
for (File f : files)
deleteFile(f);
file.delete();
}
}