UNPKG

@kevisual/noco

Version:

一个轻量级的 NocoDB API SDK,支持表记录操作和 Base 管理功能。

58 lines (53 loc) 1.7 kB
export const extname = (str: string): string => { const match = str.match(/\.[^\.]+$/); return match ? match[0] : ''; } /** * 根据文件扩展名获取 MIME 类型 * @param fileName - 文件名 * @returns MIME 类型 */ export function getMimeType(fileName: string): string { const ext = extname(fileName).toLowerCase(); const mimeTypes: Record<string, string> = { // 图片 '.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.gif': 'image/gif', '.webp': 'image/webp', '.svg': 'image/svg+xml', '.bmp': 'image/bmp', '.ico': 'image/x-icon', // 文档 '.pdf': 'application/pdf', '.doc': 'application/msword', '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', '.xls': 'application/vnd.ms-excel', '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', '.ppt': 'application/vnd.ms-powerpoint', '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', '.txt': 'text/plain', '.csv': 'text/csv', // 音视频 '.mp3': 'audio/mpeg', '.mp4': 'video/mp4', '.wav': 'audio/wav', '.avi': 'video/x-msvideo', '.mov': 'video/quicktime', // 压缩文件 '.zip': 'application/zip', '.rar': 'application/x-rar-compressed', '.7z': 'application/x-7z-compressed', '.tar': 'application/x-tar', '.gz': 'application/gzip', // 代码文件 '.json': 'application/json', '.xml': 'application/xml', '.html': 'text/html', '.css': 'text/css', '.js': 'text/javascript', '.ts': 'text/typescript', }; return mimeTypes[ext] || 'application/octet-stream'; }