使用 PHP 将视频上传到服务器

uploading videos to server using PHP

我正在开发一个网站,用户可以将他们的视频上传到该网站,然后将视频发送到服务器。它完美地工作没问题。但是我想以不同的方式制作以下代码,当用户上传视频时,它必须通过创建新文件夹目录(名称为用户名)将其存储到服务器中的新文件夹中,并且我必须能够通过以下方式从服务器中获取它将视频嵌入到他们各自的个人资料中。 下面的片段通常用于通过在服务器中创建一个上传文件夹来上传(上传文件夹是手动创建的,我希望它的方式是当用户上传视频时,必须在服务器中自动形成一个新的直接名称,名称为用户名在上面)请帮助.....

       video.php
      ----------
       <form action="videophp.php" method="post" enctype="multipart/form-data">
       <label for="file"><span>Filename:</span></label>
       <input type="file" name="file" id="file" /> 
       <br />
       <input type="submit" name="submit" value="Upload" />
       </form>

        videophp.php
       -------------
       <?php

       $allowedExts = array("mp4", "flv","jpg","JPEG");
       $extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

       if ((($_FILES["file"]["type"] == "video/mp4")

       || ($_FILES["file"]["type"] == "video/flv")
       || ($_FILES["file"]["type"] == "image/jpg")
       || ($_FILES["file"]["type"] == "image/JPEG")


         )

          && ($_FILES["file"]["size"] > 2000000)
          && in_array($extension, $allowedExts))

         {
           if ($_FILES["file"]["error"] > 0)
         {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
          }
          else
         {
          echo "Upload: " . $_FILES["file"]["name"] . "<br />";
          echo "Type: " . $_FILES["file"]["type"] . "<br />";
           echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
          echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

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

这是您要查找的内容之一:

$username = 'Max Mustermann';    // you'd have to get that from somewhere
$targetfolder = 'upload/'.$username;

if (!file_exists($targetfolder)) {
    mkdir($targetfolder, 0777, true);
}
if (file_exists($targetfolder . $_FILES["file"]["name"])) {
     echo $_FILES["file"]["name"] . " already exists. ";
}
else {
    move_uploaded_file($_FILES["file"]["tmp_name"],
        $targetfolder . $_FILES["file"]["name"]);

    echo "Stored in: " . $targetfolder . $_FILES["file"]["name"];
}

您还需要向服务器发送用户名。 有了它,您还可以在他下次访问时访问它。

但是 我建议给文件夹和文件其他名称并将它们存储在数据库中,连接到用户的数据。这样你就可以更好地控制谁可以访问什么文件(视频),你不必搜索文件系统(这比搜索 n db 慢)。

     $uploaddir = 'uploads/';
   $filename = basename($_FILES['media']['name']);

    $raw = $uploaddir . $filename;
 $_FILES['media']['tmp_name'];
   if (move_uploaded_file($_FILES['media']['tmp_name'], $raw))
        $url = "http://".$_SERVER['HTTP_HOST']."/newsapp/".$raw;