从数据库中获取视频并直接在页面上显示视频,而无需单击链接


Get video from database and displaying the video on a page directly without having to click a link

从事一个涉及人们注册网站并上传视频的项目,问题是我已经创建了一个文件上传表单并且它运行良好,我前往数据库并检查用户表,我看到上传的视频,然后进入我的 PHP 代码并初始化变量:

$Getvid = " "; 

然后我获取该行

while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) {  $vid = $row ["vid"]; } 

之后我放置

$Getvid = '< source src="user/'.$u.'/'.$vid.'" >';
if($vid == NULL) {
    $Getvid = '< source src="image/Movie on 2013-07-24 at 13.43.mov" type="video/mp4" >';
}

获取用户上传的视频文件并将其回显到他/她的页面上,如果 vid 行为 null,则脚本将显示我存储在数据库中的默认视频

之后,我在用户页面上回显出视频

      < video width="320" height="240" controls>
      < source src="< ?php echo $vid; ? > " >
      </video> 

但是由于某种原因,视频没有显示默认值也不起作用,除非我像这样专门获取它:

    <video width="320" height="240" controls>
      <source src="image/Movie on 2013-07-24 at 13.43.mov" type="video/mp4"  >
    </video> 

如果你实际上在源代码中键入< ?php,PHP不会被调用。它需要位于单个标记中,例如 <?php .修复此问题后,将 PHP 代码的输出与您的工作示例进行比较,看看它有什么不同。如果您想要更准确的答案,请将生成的 HTML 与您期望的 HTML 一起添加到您的问题中。

您还在不同的路径中使用相同的变量;您在视频名称之前附加 image/的一个位置,而您的变量似乎不包含路径。

问题的两个潜在来源,您不应该在文件名中使用空格存储文件,并且您没有为视频指定类型。

SRC 应包含有效的 URL,因此 PHP 字符串中应使用 %20 或 + 代替空格。

注意:正如Fisk提到的,由于间距的原因,您的php标签是错误的。您可以通过替换来使用 PHP echo 简写形式

< ?php echo $vid; ? > 
by 
<?= $vid; ?>