What are the differences between client-side file selection and server-side file upload in PHP?

Client-side file selection allows users to choose files from their local machine using a web form, while server-side file upload involves receiving and processing those files on the server. In PHP, client-side file selection is typically done using HTML input elements with type "file", while server-side file upload is handled by PHP functions like move_uploaded_file().

// Client-side file selection
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="fileToUpload">
    <input type="submit" value="Upload File" name="submit">
</form>

// Server-side file upload
<?php
if(isset($_POST["submit"])) {
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    
    if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "File uploaded successfully.";
    } else {
        echo "Error uploading file.";
    }
}
?>