50 lines
2.4 KiB
TypeScript
50 lines
2.4 KiB
TypeScript
import path from 'path';
|
|
// 获取文件的 content-type
|
|
export const getContentType = (filePath: string) => {
|
|
const extname = path.extname(filePath);
|
|
const contentType = {
|
|
'.html': 'text/html; charset=utf-8',
|
|
'.js': 'text/javascript; charset=utf-8',
|
|
'.css': 'text/css; charset=utf-8',
|
|
'.txt': 'text/plain; charset=utf-8',
|
|
'.json': 'application/json; charset=utf-8',
|
|
'.png': 'image/png',
|
|
'.jpg': 'image/jpg',
|
|
'.gif': 'image/gif',
|
|
'.svg': 'image/svg+xml',
|
|
'.wav': 'audio/wav',
|
|
'.mp4': 'video/mp4',
|
|
'.md': 'text/markdown; charset=utf-8', // utf-8配置
|
|
'.ico': 'image/x-icon', // Favicon 图标
|
|
'.webp': 'image/webp', // WebP 图像格式
|
|
'.webm': 'video/webm', // WebM 视频格式
|
|
'.ogg': 'audio/ogg', // Ogg 音频格式
|
|
'.mp3': 'audio/mpeg', // MP3 音频格式
|
|
'.m4a': 'audio/mp4', // M4A 音频格式
|
|
'.m3u8': 'application/vnd.apple.mpegurl', // HLS 播放列表
|
|
'.ts': 'video/mp2t', // MPEG Transport Stream
|
|
'.pdf': 'application/pdf', // PDF 文档
|
|
'.doc': 'application/msword', // Word 文档
|
|
'.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // Word 文档 (新版)
|
|
'.ppt': 'application/vnd.ms-powerpoint', // PowerPoint 演示文稿
|
|
'.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', // PowerPoint (新版)
|
|
'.xls': 'application/vnd.ms-excel', // Excel 表格
|
|
'.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // Excel 表格 (新版)
|
|
'.csv': 'text/csv; charset=utf-8', // CSV 文件
|
|
'.xml': 'application/xml; charset=utf-8', // XML 文件
|
|
'.rtf': 'application/rtf', // RTF 文本文件
|
|
'.eot': 'application/vnd.ms-fontobject', // Embedded OpenType 字体
|
|
'.ttf': 'font/ttf', // TrueType 字体
|
|
'.woff': 'font/woff', // Web Open Font Format 1.0
|
|
'.woff2': 'font/woff2', // Web Open Font Format 2.0
|
|
'.otf': 'font/otf', // OpenType 字体
|
|
'.wasm': 'application/wasm', // WebAssembly 文件
|
|
'.pem': 'application/x-pem-file', // PEM 证书文件
|
|
'.crt': 'application/x-x509-ca-cert', // CRT 证书文件
|
|
'.yaml': 'application/x-yaml; charset=utf-8', // YAML 文件
|
|
'.yml': 'application/x-yaml; charset=utf-8', // YAML 文件(别名)
|
|
'.zip': 'application/octet-stream',
|
|
};
|
|
return contentType[extname] || 'application/octet-stream';
|
|
};
|