Maison  >  Article  >  développement back-end  >  Comment télécharger des fichiers vidéo dans un dossier, créer une entrée de base de données et effectuer une validation avec PHP ?

Comment télécharger des fichiers vidéo dans un dossier, créer une entrée de base de données et effectuer une validation avec PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-21 14:01:30634parcourir

How to Upload Video Files to a Folder, Create a Database Entry, and Perform Validation with PHP?

Télécharger des fichiers vidéo avec PHP et les enregistrer dans des dossiers appropriés et créer une entrée de base de données

Ce script PHP permet aux utilisateurs de télécharger des fichiers vidéo dans un dossier spécifié et de créer des fichiers correspondants. entrées de la base de données :

<code class="php"><?php

// Upload settings
define('DESTINATION_FOLDER', '/uploads/'); // Folder to save uploaded videos
define('MAX_FILE_SIZE', 10485760); // Maximum file size allowed in bytes (10MB)
define('ALLOWED_EXTENSIONS', ['avi', 'mov', 'mp4']); // Allowed file extensions

// Database settings
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'my_database');

// Initialize variables
$errors = [];
$message = '';
$uploadSuccess = false;

// Process form submission
if (isset($_POST['submit'])) {

    // Fetch form data
    $filename = $_FILES['filename']['name'];
    $tmp_filename = $_FILES['filename']['tmp_name'];
    $file_ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
    $filesize = $_FILES['filename']['size'];

    // Validate file
    if (!$tmp_filename) {
        $errors[] = 'Error: No file selected.';
    } elseif (!in_array($file_ext, ALLOWED_EXTENSIONS)) {
        $errors[] = 'Error: File type not allowed.';
    } elseif ($filesize > MAX_FILE_SIZE) {
        $errors[] = 'Error: File size exceeds limit.';
    }

    // Upload file if no errors
    if (empty($errors)) {
        $newFilename = uniqid() . '.' . $file_ext;
        $uploadPath = DESTINATION_FOLDER . $newFilename;

        // Move uploaded file to the specified folder
        if (move_uploaded_file($tmp_filename, $uploadPath)) {
            $uploadSuccess = true;
            $message = 'File uploaded successfully.';
        } else {
            $errors[] = 'Error: Unable to move uploaded file.';
        }
    }

    // Create database entry if upload was successful
    if ($uploadSuccess) {
        try {
            // Establish database connection
            $conn = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASSWORD);
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            // Prepare SQL query
            $stmt = $conn->prepare("INSERT INTO uploads (`name`, `path`) VALUES (?, ?)");
            $stmt->execute([$filename, $uploadPath]);
        } catch (PDOException $e) {
            $errors[] = 'Error: Database connection failed: ' . $e->getMessage();
        }
    }
}

?>

<!DOCTYPE html>
<html>
<head>
    <title>Upload Video Files</title>
</head>
<body>

    <h1>Upload Video Files</h1>

    <form method="post" enctype="multipart/form-data">
        <label for="filename">Filename:</label>
        <input type="file" name="filename">

        <input type="submit" name="submit" value="Upload">
    </form>

    <?php if (!empty($message)): ?>
        <div><?php echo $message; ?></div>
    <?php endif; ?>

    <?php if (!empty($errors)): ?>
        <ul>
            <?php foreach ($errors as $error): ?>
                <li><?php echo $error; ?></li>
            <?php endforeach; ?>
        </ul>
    <?php endif; ?>

</body>
</html></code>

Lors de la soumission, ce script effectue les tâches suivantes :

  • Valide le type, la taille et l'extension du fichier téléchargé.
  • Déplace le fichier téléchargé dans le dossier spécifié.
  • Crée une connexion à la base de données et insère une entrée avec le nom de fichier et le chemin de la vidéo dans le tableau des téléchargements.

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