mirror of
https://github.com/RhenCloud/Cloud-Index.git
synced 2025-12-06 15:17:40 +08:00
3.8 KiB
3.8 KiB
文件预览功能说明
功能概述
文件预览功能已更新,现在支持多种文件类型的在线预览,并对不支持预览的文件类型提供友好的提示信息。
支持的文件类型
1. 图片文件
支持的格式:jpg, jpeg, png, gif, bmp, webp, svg, ico
预览方式:在模态框中直接显示图片,支持缩放适配。
2. 视频文件
支持的格式:mp4, webm, ogg, mov, avi, mkv, m4v
预览方式:使用 HTML5 视频播放器,支持播放控制、音量调节、全屏等功能。
3. 音频文件 ⭐ 新增
支持的格式:mp3, wav, ogg, m4a, aac, flac, opus, weba
预览方式:显示音乐图标和 HTML5 音频播放器,支持播放控制、进度条、音量调节。
4. PDF 文件 ⭐ 新增
支持的格式:pdf
预览方式:使用 iframe 内嵌 PDF 查看器,支持页面导航和缩放(取决于浏览器)。
5. 文本文件 ⭐ 新增
支持的格式:
- 纯文本:
txt,log,md - 数据格式:
json,xml,csv,yaml,yml,toml,ini,conf - 代码文件:
js,css,html,py,java,c,cpp,h,hpp,sh,bat
预览方式:以等宽字体显示文本内容,保留格式和换行,支持滚动查看。
不支持预览的文件
对于不在上述类型中的文件(如:zip、exe、docx、xlsx 等),系统会显示一个友好的提示界面,包含:
- 文件图标
- "该文件不支持预览" 提示信息
- 文件名显示
- 下载文件 按钮 - 直接下载文件到本地
- 新窗口打开 按钮 - 在新标签页中尝试打开文件
用户体验改进
- 统一的预览界面:所有支持预览的文件都在同一个模态框中显示
- 加载提示:预览加载时显示 "加载中..." 提示
- 错误处理:加载失败时显示友好的错误信息
- 快捷操作:
- 点击预览窗口外部区域可关闭预览
- 按
Esc键关闭预览 - 预览窗口内提供下载和关闭按钮
- 响应式设计:在移动设备上自动调整预览窗口大小
- 主题适配:文本预览支持深色/浅色主题切换
技术实现
JavaScript 更新
getFileType(filename)函数:扩展了文件类型识别,支持 5 大类文件openPreview(url, filename)函数:- 根据文件类型动态创建相应的预览元素
- 为不支持的文件显示操作提示界面
- 处理加载成功和失败的各种情况
CSS 样式
新增样式类:
.preview-audio-wrapper- 音频预览容器.preview-audio- 音频播放器.preview-text- 文本内容显示.preview-unsupported- 不支持预览的提示界面
使用示例
预览音频文件
点击任意 .mp3, .wav 等音频文件的 "预览" 按钮
→ 显示音乐图标和播放控制器
→ 自动开始播放
预览文本文件
点击 .txt, .json, .py 等文本文件的 "预览" 按钮
→ 加载并显示文件内容
→ 使用等宽字体,便于阅读代码
处理不支持的文件
点击 .zip, .exe 等文件的 "预览" 按钮
→ 显示提示界面
→ 提供下载或新窗口打开选项
浏览器兼容性
- 现代浏览器:完全支持(Chrome, Firefox, Safari, Edge)
- 音频格式:取决于浏览器对各种音频编码的支持
- PDF 预览:取决于浏览器内置 PDF 查看器
- 视频格式:建议使用 mp4 (H.264) 以获得最佳兼容性
未来改进方向
- 添加代码语法高亮
- 支持 Office 文档预览(需要第三方服务)
- 添加图片旋转、缩放控制
- 支持预览窗口内文件导航(上一个/下一个)
- 添加预览历史记录