无法在PHP中显示视频

时间:2014-11-14 16:57:20

标签: php html video

在我的网站上,用户可以上传视频。 我将这些视频存储在一个文件夹中,并将它们存储在mysql数据库中。

我想从文件夹中检索该视频并在页面上显示。 该文件夹还包含图像。 我也在展示这些图像。 图像正在显示。视频只播放音频,而不播放视频。而且,我的数据库中只有两个视频和一个图像。然后还显示3个视频文件和3个图像,其中两个图像以交替文本显示。

以下是我在PHP中尝试的代码:

if ($db_found) 
{
    $query ="SELECT * FROM `files`";        
    $result = mysql_query($query,$db_handle);   
    echo "<div class='product'>";
    while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
        $src=$row['File'];
        echo "<img src='$src' height='200' width='200' alt='Image not Found'/>";
        echo "<video width='200' height='200' autoplay controls>
              <source src='$src' type='video/mp4'>
              </video>";
    }
    echo "</div>";
}

2 个答案:

答案 0 :(得分:0)

您需要使用以下内容检查哪些是视频,哪些是图像?

 $src=$row['File'];

        if (preg_match("/\.jpg$/i",$src)){

            echo "<img src='$src' height='200' width='200' alt='Image not Found'/>";

        }else{

             echo "<video width='200' height='200' autoplay controls> <source src='$src' type='video/mp4'> </video>";

        }

修改

哦,请停止使用已弃用的mysql functions

选择更现代的连接数据库

的方法

答案 1 :(得分:0)

你真的应该添加(至少)某种方式来分离你的视频和图像。例如,files表格中的第二列,告诉您相关文件是视频还是图片。

然后你可以简单地做这样的事情:

SELECT * FROM `files` WHERE `filetype` == 1

其中1 =图像,2 =视频等

然后您可以根据需要简单地处理该数组:

<?php
foreach($images as $image) { ?>
    <img src='<?= $image["src" ?>' alt=''>
<?php } ?>

<?php
foreach($videos as $video) { ?>
  <video id="video" preload="auto" autoplay="autoplay">
    <source src="<?= $video["src"] ?>.mp4">
  </video>
<?php } ?>

注意:只有视频播放音频的事实与您的代码无关。