# 【操作指南】修复视频无法打开问题 ## 🎯 问题描述 视频文件存储在:`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. 网络连接