| | |
| | | } |
| | | |
| | | /** |
| | | * 预览文件类型 |
| | | */ |
| | | export type PreviewFileType = |
| | | | 'docx' |
| | | | 'excel' |
| | | | 'image' |
| | | | 'pdf' |
| | | | 'pptx' |
| | | | 'unknown'; |
| | | |
| | | /** |
| | | * 根据文件名判断预览文件类型 |
| | | * |
| | | * @param filename 文件名或 URL |
| | | * @returns 预览文件类型 |
| | | */ |
| | | export function getFileType(filename: null | string | undefined): PreviewFileType { |
| | | if (!filename) return 'unknown'; |
| | | const ext = filename.split('.').pop()?.toLowerCase() || ''; |
| | | if (isImage(ext)) return 'image'; |
| | | if (ext === 'pdf') return 'pdf'; |
| | | if (['doc', 'docx'].includes(ext)) return 'docx'; |
| | | if (['xls', 'xlsx'].includes(ext)) return 'excel'; |
| | | if (['ppt', 'pptx'].includes(ext)) return 'pptx'; |
| | | return 'unknown'; |
| | | } |
| | | |
| | | /** |
| | | * 获取文件图标(Lucide Icons) |
| | | * |
| | | * @param filename 文件名 |