文件存储服务
This commit is contained in:
parent
166a36c7b6
commit
1a28e6f0b4
|
|
@ -8,10 +8,15 @@ import java.io.OutputStream;
|
|||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import com.bonus.common.core.utils.StringUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 文件处理工具类
|
||||
|
|
@ -250,4 +255,53 @@ public class FileUtils
|
|||
String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
|
||||
return encode.replaceAll("\\+", "%20");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成统一格式的文件名
|
||||
* 格式为:uploads/yyyy/MM/dd/fileName
|
||||
*
|
||||
* @param fileName 原始文件名
|
||||
* @return 生成的文件名
|
||||
*/
|
||||
public static String generateObjectName(String fileName) {
|
||||
// 生成安全的文件名,例如使用UUID加上原始文件扩展名
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
|
||||
String datePath = sdf.format(new Date());
|
||||
return "uploads/" + datePath + "/" + fileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 从文件路径中提取文件名
|
||||
*
|
||||
* @param filePath 文件路径
|
||||
* @return 文件名
|
||||
*/
|
||||
public static String getFileNameFromPath(String filePath) {
|
||||
Path path = Paths.get(filePath);
|
||||
return path.getFileName().toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 将MultipartFile转换为File对象
|
||||
* 在临时目录中创建文件,并将上传文件内容写入
|
||||
*
|
||||
* @param multiFile MultipartFile对象
|
||||
* @return 转换后的File对象,如果转换失败返回null
|
||||
*/
|
||||
public static File multipartFileToFile(MultipartFile multiFile) {
|
||||
try {
|
||||
String fileName = multiFile.getOriginalFilename();
|
||||
if (fileName == null) {
|
||||
return null;
|
||||
}
|
||||
String prefix = fileName.substring(0, fileName.lastIndexOf("."));
|
||||
String suffix = fileName.substring(fileName.lastIndexOf("."));
|
||||
File file = File.createTempFile(prefix, suffix);
|
||||
multiFile.transferTo(file);
|
||||
return file;
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue