What are some best practices for handling file uploads in PHP to ensure data integrity and security?

When handling file uploads in PHP, it is essential to validate the file type, size, and content to ensure data integrity and security. One common best practice is to move the uploaded file to a secure directory outside of the web root to prevent direct access. Additionally, consider using functions like `move_uploaded_file()` and `is_uploaded_file()` to handle file uploads safely.

// Validate file type and size
$allowedTypes = ['image/jpeg', 'image/png'];
$maxSize = 1048576; // 1MB
if (!in_array($_FILES['file']['type'], $allowedTypes) || $_FILES['file']['size'] > $maxSize) {
    die('Invalid file type or size.');
}

// Move uploaded file to secure directory
$uploadDir = '/var/www/uploads/';
$uploadFile = $uploadDir . basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
    echo 'File uploaded successfully.';
} else {
    echo 'File upload failed.';
}