243 lines
5.2 KiB
Markdown
243 lines
5.2 KiB
Markdown
# 【操作指南】修复视频无法打开问题
|
||
|
||
## 🎯 问题描述
|
||
|
||
视频文件存储在:`D:\wwwroot\study_web\web\profile\upload\upload\2025\11\18\`
|
||
|
||
路径中有**两个 upload**,导致访问路径不匹配,视频无法打开。
|
||
|
||
---
|
||
|
||
## 📋 修复步骤
|
||
|
||
### 步骤 1:备份数据(重要!)
|
||
|
||
在开始修复前,请先备份:
|
||
|
||
1. **备份文件**:
|
||
```
|
||
复制整个目录:D:\wwwroot\study_web\web\profile\upload
|
||
到:D:\wwwroot\study_web\web\profile\upload_backup_20251207
|
||
```
|
||
|
||
2. **备份数据库**:
|
||
```sql
|
||
mysqldump -u root -p study > study_backup_20251207.sql
|
||
```
|
||
|
||
---
|
||
|
||
### 步骤 2:移动文件到正确位置
|
||
|
||
**方法一:使用批处理脚本(推荐)**
|
||
|
||
1. 双击运行:`修复文件路径.bat`
|
||
2. 按照提示操作
|
||
3. 脚本会自动移动文件
|
||
|
||
**方法二:手动移动**
|
||
|
||
在 PowerShell 中执行:
|
||
|
||
```powershell
|
||
# 进入目录
|
||
cd D:\wwwroot\study_web\web\profile\upload
|
||
|
||
# 移动所有内容
|
||
Move-Item -Path "upload\*" -Destination "." -Recurse -Force
|
||
|
||
# 删除空目录
|
||
Remove-Item -Path "upload" -Recurse -Force
|
||
```
|
||
|
||
---
|
||
|
||
### 步骤 3:更新数据库路径
|
||
|
||
**方法一:使用 SQL 脚本(推荐)**
|
||
|
||
1. 打开 MySQL 客户端或 Navicat
|
||
2. 执行文件:`修复数据库路径.sql`
|
||
3. 查看执行结果
|
||
|
||
**方法二:手动执行 SQL**
|
||
|
||
```sql
|
||
USE study;
|
||
|
||
-- 更新文件路径
|
||
UPDATE study_courseware
|
||
SET file_path = REPLACE(file_path, '/profile/upload/upload/', '/profile/upload/')
|
||
WHERE file_path LIKE '/profile/upload/upload/%';
|
||
|
||
-- 验证结果
|
||
SELECT id, name, file_path
|
||
FROM study_courseware
|
||
WHERE file_path LIKE '/profile/upload/%'
|
||
LIMIT 10;
|
||
```
|
||
|
||
---
|
||
|
||
### 步骤 4:重启后端服务
|
||
|
||
1. 停止当前运行的 Spring Boot 应用
|
||
2. 重新启动后端服务
|
||
3. 查看启动日志,确认无错误
|
||
|
||
---
|
||
|
||
### 步骤 5:测试视频访问
|
||
|
||
1. **在 APP 中测试**:
|
||
- 打开一个包含视频的课程
|
||
- 点击播放视频
|
||
- 确认视频可以正常加载和播放
|
||
|
||
2. **在浏览器中测试**:
|
||
- 访问:`http://192.168.0.106:30091/profile/upload/2025/11/18/xxx.mp4`
|
||
- 替换 `xxx.mp4` 为实际的文件名
|
||
- 确认视频可以正常访问
|
||
|
||
---
|
||
|
||
## ✅ 验证清单
|
||
|
||
修复完成后,请验证:
|
||
|
||
- [ ] 文件已移动到正确位置:`D:\wwwroot\study_web\web\profile\upload\2025\11\18\`
|
||
- [ ] 旧的 `upload\upload\` 目录已删除
|
||
- [ ] 数据库中的路径已更新(没有 `/upload/upload/`)
|
||
- [ ] 后端服务重启成功
|
||
- [ ] 视频可以在 APP 中正常播放
|
||
- [ ] 视频可以通过 URL 直接访问
|
||
|
||
---
|
||
|
||
## 🔍 问题排查
|
||
|
||
### 问题 1:视频还是无法打开
|
||
|
||
**检查:**
|
||
1. 文件是否真的移动到了正确位置
|
||
2. 数据库路径是否更新成功
|
||
3. 后端服务是否重启
|
||
4. 查看后端日志是否有错误
|
||
|
||
**解决:**
|
||
```sql
|
||
-- 查看数据库中的路径
|
||
SELECT id, name, file_path
|
||
FROM study_courseware
|
||
WHERE type = 'video'
|
||
ORDER BY id DESC
|
||
LIMIT 10;
|
||
```
|
||
|
||
### 问题 2:部分视频可以打开,部分不行
|
||
|
||
**原因:** 可能有些视频是在修复前上传的,有些是修复后上传的。
|
||
|
||
**解决:**
|
||
```sql
|
||
-- 查找所有包含 /upload/upload/ 的记录
|
||
SELECT id, name, file_path
|
||
FROM study_courseware
|
||
WHERE file_path LIKE '%/upload/upload/%';
|
||
|
||
-- 如果有结果,再次执行修复 SQL
|
||
```
|
||
|
||
### 问题 3:文件移动后找不到了
|
||
|
||
**原因:** 可能移动操作出错。
|
||
|
||
**解决:**
|
||
1. 从备份恢复文件
|
||
2. 检查文件是否在其他位置
|
||
3. 使用文件搜索工具查找
|
||
|
||
---
|
||
|
||
## 📝 预防措施
|
||
|
||
为了避免将来再次出现此问题:
|
||
|
||
### 1. 确认配置正确
|
||
|
||
**application.yml**:
|
||
```yaml
|
||
ruoyi:
|
||
profile: D:\wwwroot\study_web\web\profile
|
||
```
|
||
|
||
**不要配置成:**
|
||
```yaml
|
||
ruoyi:
|
||
profile: D:\wwwroot\study_web\web\profile\upload # ❌ 错误!
|
||
```
|
||
|
||
### 2. 理解路径生成逻辑
|
||
|
||
```
|
||
配置的 profile:D:\wwwroot\study_web\web\profile
|
||
↓
|
||
RuoYiConfig.getUploadPath():profile + "/upload"
|
||
↓
|
||
实际上传路径:D:\wwwroot\study_web\web\profile\upload
|
||
↓
|
||
加上日期目录:D:\wwwroot\study_web\web\profile\upload/2025/11/18/
|
||
↓
|
||
最终文件路径:D:\wwwroot\study_web\web\profile\upload/2025/11/18/xxx.mp4
|
||
```
|
||
|
||
### 3. 测试新上传的文件
|
||
|
||
每次修改配置后,上传一个测试文件,确认:
|
||
- 文件保存的物理路径正确
|
||
- 数据库中存储的路径正确
|
||
- 可以通过 URL 访问
|
||
|
||
---
|
||
|
||
## 🆘 需要帮助?
|
||
|
||
如果修复过程中遇到问题:
|
||
|
||
1. 检查备份是否完整
|
||
2. 查看后端日志文件
|
||
3. 确认数据库连接正常
|
||
4. 验证文件权限设置
|
||
|
||
---
|
||
|
||
## 📊 修复前后对比
|
||
|
||
### 修复前:
|
||
```
|
||
物理路径:D:\wwwroot\study_web\web\profile\upload\upload\2025\11\18\xxx.mp4
|
||
数据库路径:/profile/upload/upload/2025/11/18/xxx.mp4
|
||
访问 URL:http://192.168.0.106:30091/profile/upload/upload/2025/11/18/xxx.mp4
|
||
状态:❌ 无法访问(路径不匹配)
|
||
```
|
||
|
||
### 修复后:
|
||
```
|
||
物理路径:D:\wwwroot\study_web\web\profile\upload\2025\11\18\xxx.mp4
|
||
数据库路径:/profile/upload/2025/11/18/xxx.mp4
|
||
访问 URL:http://192.168.0.106:30091/profile/upload/2025/11/18/xxx.mp4
|
||
状态:✅ 可以正常访问
|
||
```
|
||
|
||
---
|
||
|
||
## 🎉 完成!
|
||
|
||
完成以上步骤后,视频应该可以正常播放了。
|
||
|
||
如果还有问题,请检查:
|
||
1. 防火墙设置
|
||
2. 文件权限
|
||
3. 后端日志
|
||
4. 网络连接
|