What are some best practices for handling file uploads in PHP to avoid errors like the one described in the thread?

Issue: The error described in the thread is likely due to not checking for errors during file uploads in PHP. To avoid such errors, it is important to validate the file type, size, and handle any potential errors that may occur during the upload process. Code snippet:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {
        $target_dir = "uploads/";
        $target_file = $target_dir . basename($_FILES["file"]["name"]);

        // Check file type
        $file_type = pathinfo($target_file, PATHINFO_EXTENSION);
        if ($file_type != "jpg" && $file_type != "png" && $file_type != "jpeg" && $file_type != "gif") {
            echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
        } else {
            // Check file size
            if ($_FILES["file"]["size"] > 5000000) {
                echo "Sorry, your file is too large.";
            } else {
                if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
                    echo "The file ". basename( $_FILES["file"]["name"]). " has been uploaded.";
                } else {
                    echo "Sorry, there was an error uploading your file.";
                }
            }
        }
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>