【问题标题】:Fetching videos Using MySql annd php使用 MySql 和 php 获取视频
【发布时间】:2013-12-03 20:51:40
【问题描述】:

我正在开发一个网站,该网站获取用户上传的视频并将 namesizetypepathtmp_name 放入 MySQL 数据库。 upload.php 文件在下方,

<?php 

$is_form_submitted =  (isset($_POST['submit']))?true:false;

    if($is_form_submitted)
    {
        //defines variables
        $name=$_FILES['file']['name'];
        $type=$_FILES['file']['type'];
        $size=$_FILES['file']['size'];
        $tmp_name=$_FILES['file']['tmp_name'];
        $target_path="videos/";


        $allowedTypes   = array("video/wmv","video/avi",
         "video/mpeg","video/mpg","video/mp4");
        $is_valid_type  = (in_array($_FILES['file']['type'],                           $allowedTypes))?true:false;
       if ( $is_valid_type&& ($_FILES["file"]["size"] < 20000000000))
      {
        if ($_FILES["file"]["error"] > 0)
        {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
        }
        else
        {
        echo "Upload:&nbsp; " . $_FILES["file"]["name"] . "<br>";
        echo "Type:&nbsp; " . $_FILES["file"]["type"] . "<br>";
        echo "Size:&nbsp; " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Temp file:&nbsp; " . $_FILES["file"]["tmp_name"] . "<br>";
        mysql_query("INSERT INTO vids(name, type, size, tmp_name, target_path)
        VALUES('$name', '$type', '$size', '$tmp_name', '$target_path')");

        if (file_exists("images/" . $_FILES["file"]["name"]))
          {
          echo $_FILES["file"]["name"] . " already exists. ";
          }
        else
          {
          move_uploaded_file($_FILES["file"]["tmp_name"],
          "videos/" . $_FILES["file"]["name"]);
          echo "Stored in: " . "videos/" . $_FILES["file"]["name"];
          }
        }
      }
    else
    {
      echo "Invalid file";
    }

    }
?> 

一切都正常上传,但是当我去尝试获取视频的名称和路径时,它说视频播放器没有找到支持的视频,那么我该如何获取从数据库中随机视频并将其作为视频播放器的来源? (视频文件可以在播放器中播放,所以不是视频的问题)

这是文档代码中的php代码

<?php

$vid_url = "videos/";
    $result = mysql_query("SELECT * FROM `vids` WHERE 1");
    while($row = mysql_fetch_assoc($result))
    {
        echo 

        <div name="video">
        <video width="100%" height="100%" controls>
        <source src=".$vid_url.$row."type="video/mp4">
     Error: Video Not working
        </object>
        </video> 
        </div>'; 

    } 
?>

我存储视频的地方是一个名为视频的目录

【问题讨论】:

  • 嘿,你的 mysql 查询是胡言乱语......你应该有类似“SELECT * FROM vids WHERE {some column}={some value}”的东西......我会选择一个随机视频建议对 vid_id 使用增量列,然后选择一个随机 vid_id
  • 为什么要存储临时名称?临时文件将在退出时被 PHP 删除,无论您是否将其存储在其他地方。
  • 我将其存储为参考,@brendanmorrison,我怎么知道某个列和某个值是什么?
  • 您可以使用 {some_colum} 和 {some_value} 对应于任何列,例如。如果您上传了一个名为 my_test 的视频,查询可能如下所示“SELECT * FROM vids WHERE name=my_test”或者如果您只想查找任何视频,您可以执行“SELECT * FROM vids” ORDER BY size DESC LIMIT 1" 这将在您的表中按大小返回最大的视频,正如我还提到的,向一个名为 vid_id 的自动递增的表添加一列可能是个好主意,这样每个视频都有一个特定的 id帮助轻松选择它们或作为每个用户的参考,但这只是一个想法
  • 我有一个自动递增的 id 列,我想要实现的是获取一个随机 id(它会抓取一个随机视频),然后在播放器中显示它

标签: php html mysql video upload


【解决方案1】:

我想出了以防万一有人想参考这个

<?php    
    //Connects to database
    $host="################"; // Host name
    $username="##########"; // Mysql username
    $password="###########"; // Mysql password
    $db_name="#######"; // Database name
    $tbl_name="####"; // Table name

    // Connect to server and select databse.
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");
    //Tells variable video where to get the name from
    $vid_url = "videos/";
        $result = mysql_query("SELECT * FROM vids ORDER BY RAND() LIMIT 1");
    $row = mysql_fetch_assoc($result);
    $video = $vid_url.$row["name"];
<?

【讨论】:

    猜你喜欢
    • 2011-11-14
    • 2013-06-21
    • 2020-11-05
    • 1970-01-01
    • 2014-10-12
    • 2011-10-12
    • 2011-11-05
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多