Maison >développement back-end >tutoriel php >Comment gérer les téléchargements vidéo avec l'organisation des dossiers et l'entrée dans la base de données en PHP et MySQL ?

Comment gérer les téléchargements vidéo avec l'organisation des dossiers et l'entrée dans la base de données en PHP et MySQL ?

DDD
DDDoriginal
2024-10-21 13:45:03839parcourir

How to Handle Video Uploads with Folder Organization and Database Entry in PHP and MySQL?

Comment télécharger des fichiers vidéo via PHP et les enregistrer dans des dossiers appropriés avec une entrée de base de données

Introduction

Pour gérer efficacement les téléchargements de vidéos sur votre site Web, vous devez mettre en œuvre un système qui permet aux utilisateurs de télécharger des vidéos, de les stocker dans des dossiers organisés et de suivre leurs métadonnées dans une base de données. Ce guide fournira une solution complète pour y parvenir en utilisant PHP et MySQL.

Formulaire HTML

Créez un formulaire HTML qui permet aux utilisateurs de sélectionner et de télécharger des fichiers vidéo :

<code class="html"><form method="post" enctype="multipart/form-data">
  <div class="form-group">
    <label for="file">Select Video File:</label>
    <input type="file" name="file" id="file" accept="video/*" required>
  </div>
  <div class="form-group">
    <label for="course">Course:</label>
    <select name="course" required>
      <option value="select">Select Course</option>
      <option value="java">Java</option>
      <option value="python">Python</option>
      <option value="vb">Visual Basic</option>
      <option value="c">C/C++</option>
      <option value="ruby">Ruby</option>
    </select>
  </div>
  <input type="submit" name="submit" value="Upload">
</form></code>

Gestionnaire PHP

Maintenant, écrivons le script PHP pour gérer les téléchargements de fichiers et l'entrée dans la base de données :

<code class="php"><?php

// Set destination folder and allowed file extensions
define('DESTINATION_FOLDER', 'videos/');
$allowedExtensions = ['mp4', 'webm', 'avi', 'mov'];

// Database settings
$host = 'localhost';
$database = 'video_database';
$username = 'user';
$password = 'password';

// Connect to database
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// Process file upload
if (isset($_POST['submit'])) {

  // Get file details and validate extension
  $fileName = $_FILES['file']['name'];
  $fileSize = $_FILES['file']['size'];
  $fileExtension = pathinfo($fileName, PATHINFO_EXTENSION);
  if (!in_array($fileExtension, $allowedExtensions)) {
    echo "Invalid file format. Please upload a valid video file.";
    exit;
  }

  // Check if there are any upload errors
  if ($_FILES['file']['error'] > 0) {
    echo "Error uploading file.";
    exit;
  }

  // Move file to destination folder
  $fileDestination = DESTINATION_FOLDER . $fileName;
  if (move_uploaded_file($_FILES['file']['tmp_name'], $fileDestination)) {

    // Insert file details into database
    $course = $_POST['course'];
    $uploadDate = date("Y-m-d H:i:s");

    $sql = "INSERT INTO video_uploads (video_name, course, upload_date) VALUES ('$fileName', '$course', '$uploadDate')";

    if ($conn->query($sql)) {
      echo "File uploaded successfully. Database entry added.";
    } else {
      echo "Error adding database entry.";
    }
  } else {
    echo "Error moving file to destination.";
  }
}

$conn->close();</code>

Ce code sera automatiquement organisez les fichiers vidéo en sous-dossiers en fonction du cours sélectionné et ajoutez une entrée de base de données avec les détails du fichier.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn