What are best practices for handling uploaded files in PHP to ensure proper verification and processing?

When handling uploaded files in PHP, it is essential to verify the file type, size, and content to prevent security vulnerabilities such as file injection attacks. To ensure proper verification and processing, use functions like `move_uploaded_file` to securely move the file to a designated directory and `$_FILES` superglobal array to access file information.

// Verify file type
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['file']['type'], $allowedTypes)) {
    die('Invalid file type. Only JPEG, PNG, and GIF files are allowed.');
}

// Verify file size
$maxFileSize = 1048576; // 1MB
if ($_FILES['file']['size'] > $maxFileSize) {
    die('File size exceeds the limit of 1MB.');
}

// Move uploaded file to designated directory
$uploadDir = 'uploads/';
$uploadFile = $uploadDir . basename($_FILES['file']['name']);

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
    echo 'File uploaded successfully.';
} else {
    echo 'Failed to upload file.';
}