What are some common pitfalls to avoid when uploading files using PHP?

One common pitfall to avoid when uploading files using PHP is not validating the file type before allowing it to be uploaded. This can lead to security vulnerabilities such as allowing malicious files to be uploaded to the server. To solve this issue, always validate the file type before moving it to the upload directory.

// Validate file type before moving it to the upload directory
$allowedFileTypes = ['jpg', 'jpeg', 'png', 'gif'];
$uploadedFileType = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

if (!in_array($uploadedFileType, $allowedFileTypes)) {
    echo "Invalid file type. Please upload a JPG, JPEG, PNG, or GIF file.";
} else {
    // Move the file to the upload directory
    move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
    echo "File uploaded successfully!";
}