diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/utils/FileTypeUtils.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/utils/FileTypeUtils.java new file mode 100644 index 0000000..7dcd2af --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/utils/FileTypeUtils.java @@ -0,0 +1,75 @@ +package com.bonus.ai.utils; + +import org.apache.commons.lang3.StringUtils; + +import java.io.File; + +/** + * 文件类型工具类 + * + * @author ruoyi + */ +public class FileTypeUtils { + public static final String FILE_TYPE_XLS = "application/vnd.ms-excel"; + public static final String FILE_TYPE_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + public static final String FILE_TYPE_DOC = "application/msword"; + public static final String FILE_TYPE_DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; + public static final String FILE_TYPE_PDF = "application/pdf"; + public static final String FILE_TYPE_JSON = "application/json"; + public static final String FILE_TYPE_XML = "application/xml"; + public static final String FILE_TYPE_PNG = "image/png"; + public static final String FILE_TYPE_JPEG = "image/jpeg"; + public static final String FILE_TYPE_SVG = "image/svg"; + + /** + * 获取文件类型 + *

+ * 例如: ruoyi.txt, 返回: txt + * + * @param file 文件名 + * @return 后缀(不含".") + */ + public static String getFileType(File file) { + if (null == file) { + return StringUtils.EMPTY; + } + return getFileType(file.getName()); + } + + /** + * 获取文件类型 + *

+ * 例如: ruoyi.txt, 返回: txt + * + * @param fileName 文件名 + * @return 后缀(不含".") + */ + public static String getFileType(String fileName) { + int separatorIndex = fileName.lastIndexOf("."); + if (separatorIndex < 0) { + return ""; + } + return fileName.substring(separatorIndex + 1).toLowerCase(); + } + + /** + * 获取文件类型 + * + * @param photoByte 文件字节码 + * @return 后缀(不含".") + */ + public static String getFileExtendName(byte[] photoByte) { + String strFileExtendName = "JPG"; + if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) + && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) { + strFileExtendName = "GIF"; + } else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) { + strFileExtendName = "JPG"; + } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) { + strFileExtendName = "BMP"; + } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) { + strFileExtendName = "PNG"; + } + return strFileExtendName; + } +}