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