Package com.bytedesk.core.utils
Class BdUploadUtils
java.lang.Object
com.bytedesk.core.utils.BdUploadUtils
文件上传相关工具类
包含文件扩展名提取、文件类型判断、文件名过滤等通用功能
- Author:
- jackning
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringextractDatePathFromTimestampFileName(String fileName) 从时间戳文件名中提取日期路径 例如:20240916144702_身份证-背面.jpg 提取为:2024/09/16static StringextractRelativePathFromUrl(String fileUrl) 从文件URL中提取相对路径 例如:http://127.0.0.1:9003/file/2025/09/05/filename.pdf 提取为:2025/09/05/filename.pdfstatic StringformatFileSize(long sizeInBytes) 格式化文件大小static StringgenerateSafeFileName(String originalFileName) 生成安全的文件名(时间戳 + 随机数 + 扩展名)static StringgetFileExtension(String fileName) 获取文件扩展名static StringgetFileFolderByType(String fileName, String contentType) 根据文件类型获取对应的文件夹名称static StringgetFileNameWithoutExtension(String fileName) 获取不带扩展名的文件名static booleanisArchiveFile(String fileName, String contentType) 判断是否为压缩文件static booleanisAudioFile(String fileName, String contentType) 判断是否为音频文件static booleanisDocumentFile(String fileName, String contentType) 判断是否为文档文件static booleanisExcelFile(String fileName) 检查文件名是否为Excel文件static booleanisImageFile(String fileName, String contentType) 判断是否为图片文件static booleanisPowerPointDocument(String fileName) 检查文件名是否为PowerPoint文档static booleanisSafeFileName(String fileName) 验证文件名是否安全static booleanisVideoFile(String fileName, String contentType) 判断是否为视频文件static booleanisWordDocument(String fileName) 检查文件名是否为Word文档static StringsanitizeFileName(String fileName) 过滤文件名,移除危险字符static StringtruncateFileName(String fileName, int maxLength) 截断文件名到指定长度,保留扩展名
-
Field Details
-
SAFE_FILENAME_PATTERN
安全文件名的正则表达式,只允许字母数字下划线点横线
-
-
Constructor Details
-
BdUploadUtils
public BdUploadUtils()
-
-
Method Details
-
getFileExtension
获取文件扩展名- Parameters:
fileName- 文件名- Returns:
- 文件扩展名(小写),如果没有扩展名返回空字符串
-
getFileNameWithoutExtension
获取不带扩展名的文件名- Parameters:
fileName- 文件名- Returns:
- 不带扩展名的文件名
-
isImageFile
判断是否为图片文件- Parameters:
fileName- 文件名contentType- MIME类型- Returns:
- 是否为图片文件
-
isAudioFile
判断是否为音频文件- Parameters:
fileName- 文件名contentType- MIME类型- Returns:
- 是否为音频文件
-
isVideoFile
判断是否为视频文件- Parameters:
fileName- 文件名contentType- MIME类型- Returns:
- 是否为视频文件
-
isDocumentFile
判断是否为文档文件- Parameters:
fileName- 文件名contentType- MIME类型- Returns:
- 是否为文档文件
-
isArchiveFile
判断是否为压缩文件- Parameters:
fileName- 文件名contentType- MIME类型- Returns:
- 是否为压缩文件
-
getFileFolderByType
根据文件类型获取对应的文件夹名称- Parameters:
fileName- 文件名contentType- MIME类型- Returns:
- 文件夹名称
-
sanitizeFileName
过滤文件名,移除危险字符- Parameters:
fileName- 原始文件名- Returns:
- 安全的文件名
-
generateSafeFileName
生成安全的文件名(时间戳 + 随机数 + 扩展名)- Parameters:
originalFileName- 原始文件名- Returns:
- 安全的文件名
-
truncateFileName
截断文件名到指定长度,保留扩展名- Parameters:
fileName- 文件名maxLength- 最大长度- Returns:
- 截断后的文件名
-
extractRelativePathFromUrl
从文件URL中提取相对路径 例如:http://127.0.0.1:9003/file/2025/09/05/filename.pdf 提取为:2025/09/05/filename.pdf- Parameters:
fileUrl- 完整的文件URL- Returns:
- 相对路径,如果提取失败返回null
-
extractDatePathFromTimestampFileName
从时间戳文件名中提取日期路径 例如:20240916144702_身份证-背面.jpg 提取为:2024/09/16- Parameters:
fileName- 包含时间戳的文件名- Returns:
- 日期路径,如果提取失败返回null
-
isSafeFileName
验证文件名是否安全- Parameters:
fileName- 文件名- Returns:
- 是否安全
-
formatFileSize
格式化文件大小- Parameters:
sizeInBytes- 文件大小(字节)- Returns:
- 格式化后的文件大小字符串
-
isExcelFile
检查文件名是否为Excel文件- Parameters:
fileName- 文件名- Returns:
- 如果是Excel文件返回true,否则返回false
-
isWordDocument
检查文件名是否为Word文档- Parameters:
fileName- 文件名- Returns:
- 如果是Word文档返回true,否则返回false
-
isPowerPointDocument
检查文件名是否为PowerPoint文档- Parameters:
fileName- 文件名- Returns:
- 如果是PowerPoint文档返回true,否则返回false
-