What are the key steps involved in uploading files using PHP through a web form?

When uploading files using PHP through a web form, the key steps involve creating an HTML form with the correct enctype attribute set to "multipart/form-data", handling the file upload in PHP using the $_FILES superglobal, checking for errors and ensuring the file meets any necessary validation criteria, moving the uploaded file to the desired location on the server, and providing feedback to the user on the success or failure of the upload process.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["fileToUpload"])) {
    $targetDir = "uploads/";
    $targetFile = $targetDir . basename($_FILES["fileToUpload"]["name"]);

    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

<form action="" method="post" enctype="multipart/form-data">
    Select file to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload File" name="submit">
</form>