Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gehe ich mit Video-Uploads mit Ordnerorganisation und Datenbankeintrag in PHP und MySQL um?

Wie gehe ich mit Video-Uploads mit Ordnerorganisation und Datenbankeintrag in PHP und MySQL um?

DDD
DDDOriginal
2024-10-21 13:45:03742Durchsuche

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

So laden Sie Videodateien über PHP hoch und speichern sie in geeigneten Ordnern mit Datenbankeintrag

Einführung

Um Video-Uploads auf Ihrer Website effektiv zu verwalten, müssen Sie ein System implementieren, das es Benutzern ermöglicht, Videos hochzuladen, sie in organisierten Ordnern zu speichern und ihre Metadaten in einer Datenbank zu verfolgen. Dieser Leitfaden bietet eine umfassende Lösung, um dies mit PHP und MySQL zu erreichen.

HTML-Formular

Erstellen Sie ein HTML-Formular, mit dem Benutzer Videodateien auswählen und hochladen können:

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

PHP-Handler

Jetzt schreiben wir das PHP-Skript, um Datei-Uploads und Datenbankeinträge zu verarbeiten:

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

Dieser Code wird automatisch ausgeführt Organisieren Sie Videodateien basierend auf dem ausgewählten Kurs in Unterordnern und fügen Sie einen Datenbankeintrag mit den Dateidetails hinzu.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Video-Uploads mit Ordnerorganisation und Datenbankeintrag in PHP und MySQL um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn