How can JavaScript be utilized to enhance file type restrictions in a PHP file upload form?

When creating a file upload form in PHP, you can enhance file type restrictions by using JavaScript to validate the file type before the form is submitted. This can provide a better user experience by preventing users from selecting files that are not allowed. By adding client-side validation with JavaScript, you can inform users of any errors before they submit the form.

<form action="upload.php" method="post" enctype="multipart/form-data" onsubmit="return validateForm()">
    <input type="file" name="file" id="file">
    <input type="submit" value="Upload File">
</form>

<script>
function validateForm() {
    var fileInput = document.getElementById('file');
    var filePath = fileInput.value;
    var allowedExtensions = /(\.jpg|\.jpeg|\.png)$/i;

    if (!allowedExtensions.exec(filePath)) {
        alert('Invalid file type. Please upload a JPG, JPEG, or PNG file.');
        return false;
    }

    return true;
}
</script>