How can PHP developers validate file types and sizes before allowing them to be uploaded to a server?

To validate file types and sizes before allowing them to be uploaded to a server, PHP developers can use the $_FILES superglobal array to access information about the uploaded file, such as its type and size. By checking these values against a predefined list of allowed file types and maximum file sizes, developers can prevent potentially harmful files from being uploaded to the server.

// Define allowed file types and maximum file size
$allowedTypes = ['image/jpeg', 'image/png'];
$maxFileSize = 2 * 1024 * 1024; // 2MB

// Check if file type and size are valid
if (in_array($_FILES['file']['type'], $allowedTypes) && $_FILES['file']['size'] <= $maxFileSize) {
    // File is valid, proceed with upload
    move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
    echo 'File uploaded successfully!';
} else {
    // File type or size is not valid
    echo 'Invalid file type or size. Please upload a file of type JPEG or PNG, and less than 2MB.';
}