What are common errors or pitfalls encountered when attempting to upload files using PHP?

Common errors or pitfalls encountered when attempting to upload files using PHP include not setting the correct permissions on the upload directory, not checking the file size or type before uploading, and not handling file upload errors properly. To solve these issues, make sure the upload directory has the correct permissions, validate the file size and type before uploading, and use error handling to handle any upload errors that may occur.

<?php
$upload_dir = 'uploads/';
$max_file_size = 10 * 1024 * 1024; // 10MB

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['file'])) {
    $file = $_FILES['file'];

    // Validate file size
    if ($file['size'] > $max_file_size) {
        echo 'File is too large.';
        exit;
    }

    // Validate file type
    $allowed_types = ['image/jpeg', 'image/png', 'image/gif'];
    if (!in_array($file['type'], $allowed_types)) {
        echo 'Invalid file type.';
        exit;
    }

    // Handle file upload errors
    if ($file['error'] !== UPLOAD_ERR_OK) {
        echo 'Upload failed.';
        exit;
    }

    // Move uploaded file to upload directory
    $upload_path = $upload_dir . $file['name'];
    if (move_uploaded_file($file['tmp_name'], $upload_path)) {
        echo 'File uploaded successfully.';
    } else {
        echo 'Error uploading file.';
    }
}
?>