【问题标题】:uploading videos to server using PHP使用 PHP 将视频上传到服务器
【发布时间】:2015-07-04 12:06:45
【问题描述】:

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

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

【问题讨论】:

    标签: php upload server web-site-project


    【解决方案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"];
    }
    

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

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

    【讨论】:

    • 谢谢@Jeff 我真的很喜欢这个代码,也感谢你的帮助。 “你仍然需要向服务器发送一个用户名。这样你也可以在他下次访问时访问。”这部分我没明白..你能用不同的方式说吗?
    • 好吧,我使用了一个变量$username,它还没有填充真实数据,因为在你的例子中没有用户名发送到服务器。我不知道您现在如何管理用户会话。也许您正在使用cookies?还是 php 会话?
    • 这段代码没有按照我的意愿工作,我遇到了一个小错误,这是我问的错误,上传的视频必须进入创建的文件夹。我现在已经编辑了我的问题。
    【解决方案2】:
         $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;
    

    【讨论】:

    • 能否也请您添加对您的代码的解释?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 2015-10-05
    • 2011-10-09
    • 2016-06-09
    • 2011-06-28
    相关资源
    最近更新 更多