загрузка видео на сервер с помощью 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";
        }
    ?>

person Sayuj3    schedule 04.07.2015    source источник


Ответы (2)


Это одна часть того, что вы ищете:

$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).

person Jeff    schedule 04.07.2015
comment
спасибо @Jeff Мне очень нравится код, и я также ценю вашу помощь. Вам все еще нужно отправить имя пользователя на сервер. С этим вы также можете получить доступ во время его следующего визита. эту часть я не понял .. можно сказать по другому ? - person Sayuj3; 04.07.2015
comment
Ну, я использую переменную $username, которая еще не заполнена реальными данными, потому что в вашем примере имя пользователя не отправляется на сервер. Я не знаю, как вы теперь управляете пользовательскими сессиями. Может быть, вы используете файлы cookie? Или php-сессия? - person Jeff; 04.07.2015
comment
Этот код работает не так, как я хотел, есть небольшая ошибка, которую я получаю, это была моя ошибка, я спросил, как это сделать, загруженное видео должно попасть в созданную папку. Я отредактировал свой вопрос сейчас. - person Sayuj3; 04.07.2015

person    schedule
comment
Не могли бы вы также добавить объяснение вашего кода? - person Robert; 01.06.2018