How can PHP developers ensure security and error handling while processing multiple files in an upload script?

When processing multiple files in an upload script, PHP developers can ensure security by validating file types, checking file sizes, and using secure file upload paths. They can also implement error handling by checking for upload errors, handling file conflicts, and logging any issues that arise during the upload process.

// Validate file types
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
foreach ($_FILES['files']['type'] as $type) {
    if (!in_array($type, $allowedTypes)) {
        // Handle invalid file type error
    }
}

// Check file sizes
$maxFileSize = 1048576; // 1MB
foreach ($_FILES['files']['size'] as $size) {
    if ($size > $maxFileSize) {
        // Handle file size exceeded error
    }
}

// Secure file upload paths
$uploadPath = '/path/to/upload/directory/';
foreach ($_FILES['files']['tmp_name'] as $tmpName) {
    $newFileName = $uploadPath . basename($tmpName);
    if (!move_uploaded_file($tmpName, $newFileName)) {
        // Handle file upload error
    }
}

// Error handling
foreach ($_FILES['files']['error'] as $error) {
    if ($error != UPLOAD_ERR_OK) {
        // Handle upload error
    }
}