guoyu/【操作指南】修复视频无法打开问题.md

5.2 KiB
Raw Blame History

【操作指南】修复视频无法打开问题

🎯 问题描述

视频文件存储在: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. 备份数据库

    mysqldump -u root -p study > study_backup_20251207.sql
    

步骤 2移动文件到正确位置

方法一:使用批处理脚本(推荐)

  1. 双击运行:修复文件路径.bat
  2. 按照提示操作
  3. 脚本会自动移动文件

方法二:手动移动

在 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

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. 查看后端日志是否有错误

解决:

-- 查看数据库中的路径
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. 从备份恢复文件
  2. 检查文件是否在其他位置
  3. 使用文件搜索工具查找

📝 预防措施

为了避免将来再次出现此问题:

1. 确认配置正确

application.yml

ruoyi:
  profile: D:\wwwroot\study_web\web\profile

不要配置成:

ruoyi:
  profile: D:\wwwroot\study_web\web\profile\upload  # ❌ 错误!

2. 理解路径生成逻辑

配置的 profileD:\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
访问 URLhttp://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
访问 URLhttp://192.168.0.106:30091/profile/upload/2025/11/18/xxx.mp4
状态:✅ 可以正常访问

🎉 完成!

完成以上步骤后,视频应该可以正常播放了。

如果还有问题,请检查:

  1. 防火墙设置
  2. 文件权限
  3. 后端日志
  4. 网络连接