可用switch语句根据标准化后缀名(如转小写、去点号)匹配文件类型,分别调用pdf.js、prism、office接口、原生音视频标签等预览方案,并设default兜底,校验mime类型防安全风险。
可以用 switch 语句根据文件扩展名(后缀名)决定调用哪个预览程序或处理逻辑,关键在于先提取后缀、统一格式(如转小写)、再匹配。下面以常见编程语言思路说明实现要点。
提取并标准化后缀名
不能直接对完整文件名做 switch,需先分离扩展名,并做基础清洗:
- 去掉点号(.),例如 "report.pdf" → "pdf"
- 统一转为小写,避免 "JPG" 和 "jpg" 被当成不同分支
- 处理无后缀或含多个点的情况,例如 "archive.tar.gz" 可取最后一段("gz"),或按业务需要取 "tar.gz"
用 switch 匹配常用文档类后缀
针对办公和文本类文件,可集中路由到浏览器内嵌预览或专用组件:
-
pdf → 调用 PDF.js 或
<iframe src="xxx.pdf"></iframe> - txt, md, log → 用代码高亮组件(如 Prism)或纯文本渲染
- docx, xlsx, pptx → 转为 HTML 预览,或调用 Office Online / OnlyOffice 接口
- csv → 渲染为表格(可用 PapaParse 解析 + 表格组件)
用 switch 匹配媒体类后缀
音视频图像类通常交由原生标签或播放器库处理:
-
jpg, jpeg, png, gif, webp →
<img src="..."> -
mp4, webm, mov →
<video controls></video> -
mp3, wav, ogg →
<audio controls></audio> -
svg → 直接内联插入(
fetch后设置innerHTML)或<img>(注意交互限制)
兜底与安全处理
switch 必须设 default 分支,防止未知后缀引发异常:
- 返回“不支持的文件类型”提示,或触发下载行为
- 校验 MIME type(服务端更可靠),避免仅靠后缀判断造成 XSS 或执行风险(如伪装成 .html 的恶意脚本)
- 对可执行类后缀(exe, sh, js, py)一律禁止预览,直接拦截
实际编码中,JavaScript 可用 switch(fileExt);Go/Java/C# 等也支持字符串 switch;Python 3.10+ 支持 match-case 类似功能。核心是把后缀映射到行为策略,而非硬编码打开系统程序——Web 环境下所有预览都需在沙箱内完成。











