Are there any best practices for handling user-selected images in PHP?

When handling user-selected images in PHP, it is important to validate the file type, size, and ensure secure file uploads to prevent any security vulnerabilities. One best practice is to use PHP's built-in functions like `move_uploaded_file()` to securely move the uploaded file to a designated directory on the server.

<?php
// Check if file was uploaded without errors
if(isset($_FILES["image"]) && $_FILES["image"]["error"] == 0){
    $targetDir = "uploads/";
    $targetFile = $targetDir . basename($_FILES["image"]["name"]);
    
    // Check file size
    if ($_FILES["image"]["size"] > 500000) {
        echo "Sorry, your file is too large.";
    } else {
        // Check file type
        $imageFileType = strtolower(pathinfo($targetFile,PATHINFO_EXTENSION));
        if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg") {
            echo "Sorry, only JPG, JPEG, PNG files are allowed.";
        } else {
            // Securely move uploaded file to directory
            if(move_uploaded_file($_FILES["image"]["tmp_name"], $targetFile)){
                echo "The file ". basename( $_FILES["image"]["name"]). " has been uploaded.";
            } else{
                echo "Sorry, there was an error uploading your file.";
            }
        }
    }
} else {
    echo "Error uploading file.";
}
?>