使用MySQL和PHP在Edge浏览器播放视频遇加载错误求助
问题解决:PHP+MySQL展示视频失败的修复方案
错误原因分析
- 错误1:视频资源返回
text/html类型,说明请求的路径无效,服务器返回了错误页面(比如404)而非视频文件。 - 错误2:
video.ogg是错误的MIME类型,正确的OGG视频MIME类型应为video/ogg。 - 错误3:由于路径错误和MIME类型错误,所有视频源都无法加载,导致媒体播放暂停。
代码修正要点
- 修复视频路径:将数据库中存储的视频文件名拼接到
src路径后,确保指向正确的视频文件。 - 修正MIME类型:把
video.ogg改为标准的video/ogg。 - 调整标签结构:将文件名放在
src属性内,而非source标签外,保证HTML结构正确。
修正后的完整代码
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbName = "movie review"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbName); if($conn->connect_error){ die("连接失败: " . $conn->connect_error); } ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>视频展示</title> </head> <body> <?php // 查询语句 $search = 'SELECT id, name FROM movie_video ORDER BY id'; // 执行查询 $result = mysqli_query($conn, $search); // 无结果时提示 if(!$result){ echo "数据库中未找到视频!"; exit(); } // 显示查询到的记录数 echo "<p>共查询到 " . mysqli_num_rows($result) . " 个视频。</p>"; // 循环输出视频 while($record = mysqli_fetch_assoc($result)){ $videoName = $record['name']; echo "<video controls> <source src='../videos/{$videoName}' type='video/mp4'> <source src='../videos/{$videoName}' type='video/ogg'> 您的浏览器不支持视频播放。 </video><br>"; } ?> </body> </html>
额外注意事项
- 确认
../videos/目录存在,且视频文件权限为可读取(通常设置为755)。 - 检查数据库中存储的
name字段是否包含完整文件名(如movie.mp4、movie.ogg),确保每个视频的MP4和OGG版本都存在于对应目录中。 - 如果仍出现Content-Type错误,可在服务器端配置正确的MIME类型(比如Apache的
.htaccess添加AddType video/mp4 .mp4和AddType video/ogg .ogg)。
内容的提问来源于stack exchange,提问作者Manuela Motsebo
相关产品推荐
相关产品推荐

