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

时间:2015-07-04 12:06:46

标签: php upload server web-site-project

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

       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";
        }
    ?>

2 个答案:

答案 0 :(得分:1)

这是您正在寻找的一部分:

$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"];
}

您仍需要向服务器发送用户名。 有了这个,您也可以在下次访问时访问。

BUT 我建议给文件夹和文件提供其他名称,并将它们存储在db中,并连接到用户的数据。通过这种方式,您可以更好地控制谁可以访问哪些文件(视频),您不必搜索文件系统(这比搜索n db要慢)。

答案 1 :(得分:0)

     $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;