
Upload Video Files with PHP and Save Them in Appropriate Folders and Create a Database Entry
This PHP script allows users to upload video files to a specified folder and create corresponding database entries:
<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>
Upon submission, this script performs the following tasks:
- Validates the uploaded file type, size, and extension.
- Moves the uploaded file to the specified folder.
- Creates a database connection and inserts an entry with the video's filename and path in the uploads table.
The above is the detailed content of How to Upload Video Files to a Folder, Create a Database Entry, and Perform Validation with PHP?. For more information, please follow other related articles on the PHP Chinese website!