What potential pitfalls should be considered when retrieving and displaying different file types using PHP?

When retrieving and displaying different file types using PHP, potential pitfalls to consider include security vulnerabilities such as file injection attacks, ensuring proper file validation to prevent malicious files from being executed on the server, and handling different file types appropriately to avoid unexpected behavior or errors.

// Example code snippet for handling file uploads securely

// Validate the file type before processing
$allowedTypes = ['image/jpeg', 'image/png', 'application/pdf'];
if (!in_array($_FILES['file']['type'], $allowedTypes)) {
    die('Invalid file type. Allowed types are JPEG, PNG, and PDF.');
}

// Move the uploaded file to a secure location
$uploadDir = 'uploads/';
$uploadFile = $uploadDir . basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
    echo 'File is valid and uploaded successfully.';
} else {
    echo 'Failed to upload file.';
}