Files
Cloud-Index/PREVIEW_FEATURE.md

124 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 文件预览功能说明
## 功能概述
文件预览功能已更新,现在支持多种文件类型的在线预览,并对不支持预览的文件类型提供友好的提示信息。
## 支持的文件类型
### 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 等),系统会显示一个友好的提示界面,包含:
- 文件图标
- "该文件不支持预览" 提示信息
- 文件名显示
- **下载文件** 按钮 - 直接下载文件到本地
- **新窗口打开** 按钮 - 在新标签页中尝试打开文件
## 用户体验改进
1. **统一的预览界面**:所有支持预览的文件都在同一个模态框中显示
2. **加载提示**:预览加载时显示 "加载中..." 提示
3. **错误处理**:加载失败时显示友好的错误信息
4. **快捷操作**
- 点击预览窗口外部区域可关闭预览
-`Esc` 键关闭预览
- 预览窗口内提供下载和关闭按钮
5. **响应式设计**:在移动设备上自动调整预览窗口大小
6. **主题适配**:文本预览支持深色/浅色主题切换
## 技术实现
### 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 文档预览(需要第三方服务)
- [ ] 添加图片旋转、缩放控制
- [ ] 支持预览窗口内文件导航(上一个/下一个)
- [ ] 添加预览历史记录